- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
今天的模式应该是be seen as defects or missing features in Java and C++ ?
访问者、抽象工厂、装饰器和外观是当今 Java 和 C++ 的设计模式。
明天的语言会是什么样子? 他们会有什么模式?
最佳答案
一些规范的设计模式——适配器、工厂、命令、访问者等——是融入其他语言的功能的近似值。从我的头顶上掉下来:
C# 中的事件处理程序是观察者模式的内置版本。想一想,如果您每次都必须滚动自己的观察者,您将如何在 C# 中连接事件。
访问者模式是 multimethods 的详细近似值, message forwarding ,或者 pattern matching 的一个非常弱的形式.
命令模式包装了特定的行为,以便您可以在方法之间传递对象,这或多或少近似于一流的函数。
策略模式允许您动态地将行为插入到对象中,以便您随时可以通过将一种行为替换为另一种行为来修改对象。在函数式编程世界中,我们称之为函数组合。
抽象工厂模式接受一个参数并返回一个工厂作为结果。一般来说,您可以将工厂视为函数的基本包装器(更具体地说,是构造函数的包装器)。因此,您将参数传递给函数并得到一个函数作为结果,使这种模式非常类似于柯里化(Currying)。
装饰器模式允许您在运行时向对象附加或删除行为。在 JavaScript 中,借助“原型(prototype)”OO 模型,您可以添加或删除函数,而无需显式实现装饰器模式。
因此,我们有一堆设计模式来模拟其他语言固有的功能。功能嫉妒并不一定表明该语言的弱点 - 这是您需要一遍又一遍地编写的样板代码,这表明了语言的弱点。
关于design-patterns - 设计模式真的是语言的弱点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579162/
多年来,我不止一次遇到过这种情况。您有一堆与用户相关的数据要从一个应用程序发送到另一个应用程序。第二个应用程序应该“信任”这个“ token ”并使用其中的数据。 token 中包含时间戳以防止盗窃/
我想知道使用 LOGO 是否有任何真正的缺点?我知道它是用来教 child 的,但理论上它可以用于更高级别的项目。除了它的许多不同版本之外,还有什么真正的缺点吗? 最佳答案 除了实际问题(跨平台支持、
我是一名优秀的程序员,十分优秀!