【问题标题】:Are Gang of four design patterns Programming language independent?四种设计模式的帮派编程语言是独立的吗?
【发布时间】:2015-07-04 23:54:30
【问题描述】:

是否所有用 GOF 编程语言描述的设计模式都是独立的?编程语言是指任何面向对象的语言。

我看到人们谈论 PHP 设计模式、C++ 设计模式等等。我猜想通过为编程语言加上前缀,它们通过利用该特定语言独有的特性来专门表示适用于该特定语言的设计模式。

这让我对 GOF 模式感到好奇。本书中的所有模式都保证适用于任何 OO 语言吗?换句话说,如果我用Java掌握了GOF书中的设计模式,然后如果我不得不使用另一种OO语言,我还能实现所有这些模式吗?

【问题讨论】:

  • 虽然是的,它们应该与语言无关,但它们表明这些语言的抽象存在问题(您会看到:您需要这些模式只是因为您无法在代码中表达它们)跨度>

标签: oop design-patterns


【解决方案1】:

是的,它们应该是针对常见的面向对象编程问题的散文描述。它们不依赖于任何语言。

证据是,1995 年出版的书中的示例使用 C++ 和 Smalltalk,这是当时两种领先的面向对象语言。此后,它们被 Java 和 C# 翻译和改编,这两种语言在本书首次出版时甚至都不存在。

“保证”这个词太强了。

您要避免的一件事是“带锤子的小男孩”综合症。在第一次阅读那本书后,每个人都会遇到这种情况:他们四处寻找实现模式的方法,无论它们是否合适。

您应该致力于编写最清晰、最干、最易读的代码。不要担心模式。

read 认为函数式程序员嘲笑设计模式,说它们是针对其他语言中不存在的面向对象编程缺陷的创可贴。我不是一个足够好的函数式程序员,不知道这是否属实。

【讨论】:

  • 很好的建议。在深入研究设计模式之前,了解如何利用polymorphismcompositioninheritance 等更重要。
猜你喜欢
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
相关资源
最近更新 更多