0

鲍勃大叔:是否有些语言不需要设计模式?

 2 weeks ago
source link: https://www.jdon.com/63454
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

鲍勃大叔:是否有些语言不需要设计模式?


有些语言的特点是否使某些设计模式不复存在?  在我的经验中没有。相反,有一些语言的特点可以促进某些模式的发展。
作为一个简单的例子,看看Strategy策略模式:

1、在C语言中,我们可以通过向策略用户传递一个指向策略函数的指针作为参数,或传递一个数据结构字段来实现这一模式。

2、在Java中,我们可以把一个策略接口的实现传递给策略用户的构造器。

3、在Clojure中,你可以将一个策略函数作为参数或数据元素传递给策略用户。

在上述每种情况下,这都是策略模式。
其重要性在于名称,而不是结构。

无论使用何种语言,开发者都可以讨论策略模式是否是一个合适的解决方案。或者,如果代码中出现了Strategy这个词,那么该代码的读者就会知道其意图。

这种传达意图的能力是设计模式有用的全部原因。这些模式本身并不新鲜,甚至也不太有趣;但为它们命名的能力是一个巨大的优势。

GOF书提供了23种常用模式的规范名称和形式。了解这些名称和形式将极大地提高开发人员相互交流的能力,而不管他们选择什么语言。
 


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK