今天的模式应该为be seen as defects or missing features in Java and C++吗?

  • 子例程是50年代和60年代机器语言的一种设计模式。
  • 面向对象的类是70年代C的设计模式。
  • 访客,抽象工厂,装饰器和外观是当今Java和C++的设计模式。

    明天的语言会是什么样?他们将有什么模式?
  • 最佳答案

    一些规范化的设计模式-适配器,工厂,命令,访问者等-是嵌入到其他语言中的功能的近似值。从我的头顶上:

  • C#中的事件处理程序是观察者模式的内置版本。考虑一下如果每次必须滚动自己的观察者时如何在C#中关联事件。
  • 访问者模式是multimethodsmessage forwardingpattern matching的一种非常弱形式的详细近似。
  • 命令模式包装了特定的行为,因此您可以在方法之间传递对象,该方法或多或少地近似于一等函数。
  • 策略模式允许您动态地将行为插入对象,以便您随时可以通过将一种行为换成另一种行为来修改对象。在函数式编程世界中,我们称之为函数组合。
  • 抽象工厂模式接受一个参数并返回一个工厂。通常,您可以将工厂基本上看作是围绕函数的包装器(更具体地说,是围绕构造函数的包装器)。因此,您将参数传递给函数并获得一个函数,结果使此模式与currying非常相似。
  • 装饰器模式允许您在运行时将行为附加或删除到对象。在JavaScript中,借助“原型(prototype)” OO模型,无需显式实现装饰器模式即可添加或删除函数。

  • 因此,我们有许多设计模式可以模仿其他语言固有的功能。对功能的嫉妒并不一定表示该语言存在弱点-它是您需要一遍又一遍地编写的样板代码,这表明该语言存在弱点。

    09-19 15:36