2011-04-09 93 views
1

任何人都知道设计模式的列表只适用于静态类型语言,但不适用于动态类型语言?设计模式列表仅适用于静态类型语言,但不适用于动态类型语言?

E.g.策略

+0

请你可以发表你想找的例子吗?问题似乎很通用。 – Nilesh 2011-04-09 12:53:17

+0

你的例子没有帮助。战略模式适用于动态类型语言。 – 2011-04-09 15:29:01

+0

我认为DP不受语言类型的限制。无论您使用何种语言,它们都是您可以在代码中实施的原则。至少它应该是OOP语言。 – Arseny 2011-04-10 18:10:26

回答

0

设计模式有两个方面:对责任进行划分以改进程序结构,实现灵活性并简化维护。还有一套语言特定的构造来实现这种模式。在某些情况下,我们用狡猾的设计来补充语言的自然能力。

策略模式被描述为here

定义一系列的算法,封装每一个,使得它们可以互换。策略可以让算法独立于使用它的客户端。

现在,将客户端与实现细节解耦的设计目标无疑适用于动态语言以及静态语言。

细节有所不同,因为静态语言导致我们声明显式接口并为客户端编码以使用接口,而动态语言可以使用“鸭子键入”但编码来处理接收预期鸭子的狮子。 (动物 - >吃()...不不!不吃我!)

我期待看到动态代码中的大多数设计模式的例子可能代表相当不同 - 同样的问题分离仍然很重要。