GOF编程语言中描述的所有设计模式是否独立?通过编程语言我的意思是任何OO语言。
我看到人们在谈论PHP设计模式,C ++设计模式等等。我想通过为编程语言添加前缀,他们通过使用特定语言特有的功能,特别指出适用于该特定语言的设计模式。
这让我对GOF模式感到好奇。书中的所有模式都保证适用于任何OO语言吗?换句话说,如果我使用Java掌握GOF书中的设计模式,然后如果我必须使用另一种OO语言,我还能实现所有这些模式吗?
答案 0 :(得分:13)
是的,它们应该是针对常见的面向对象编程问题的散文描述。他们不依赖任何语言。
证据是1995年出版的书中的例子是C ++和Smalltalk,这是当时两种领先的面向对象语言。自从Java和C#翻译和改编以来,这两种语言在本书首次出版时甚至不存在。
"保证"太强大了。
你要避免的一件事是"小男孩用锤子"综合征。在第一次阅读该书之后,每个人都会遇到这样的情况:他们四处寻找实现模式的方法,无论它们是否适合。
您的目标应该是编写最清晰,最干净,最易读的代码。不要担心模式。
我是read,功能性程序员嘲笑设计模式,说他们是面向对象编程缺陷的创可贴,而这些缺陷并不存在于其他语言中。我不是一个足够好的功能程序员,不知道这是不是真的。