任何人都知道设计模式列表仅适用于静态类型语言而不适用于动态类型语言?
E.g。策略
答案 0 :(得分:0)
设计模式有两个方面:职责划分,以改善计划结构,实现灵活性和易于维护。以及一组特定于语言的构造来实现该模式。在某些情况下,我们通过狡猾的设计补充语言的自然能力。
战略模式被描述为here为
定义一系列算法,封装每个算法,并使它们可互换。策略允许算法独立于使用它的客户端。
现在,将客户端与实现细节分离的设计目标肯定适用于动态语言和静态语言。
细节有所不同,因为静态语言使我们声明显式接口并编码客户端以使用接口,而动态语言可以使用“Duck Typing”但编码来处理接收预期有鸭子的狮子。 (动物 - >吃()......不,不要吃我!)
我期待看到动态代码中大多数设计模式的示例可能表现得相当不同 - 关注点的相同分离仍然很重要。