oop - 四种设计模式的组合编程语言是否独立?

标签 oop design-patterns

GOF 编程语言中描述的所有设计模式都是独立的吗?我所说的编程语言是指任何 OO 语言。

我看到人们在谈论 PHP 设计模式、C++ 设计模式等等。我想通过在编程语言前加前缀,它们具体意味着通过使用特定语言独有的功能适用于该特定语言的设计模式。

这让我想知道 GOF 模式。本书中的所有模式都保证适用于任何 OO 语言吗?换句话说,如果我使用 Java 掌握了 GOF 书中的设计模式,然后如果我必须使用另一种 OO 语言,我仍然可以实现所有这些模式吗?

最佳答案

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

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

“保证”这个词太强了。

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

您的目标应该是尽可能编写最清晰、最干、最易读的代码。不要担心模式。

我已经 read函数式程序员 mock 设计模式,说它们是解决面向对象编程中其他语言中不存在的缺陷的创可贴。我不是一个足够优秀的函数式程序员,无法知道这是不是真的。

关于oop - 四种设计模式的组合编程语言是否独立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880326/

相关文章:

oop - 重构 - 打破依赖关系

java - 当使用一个对象作为字段(关联)与方法参数(依赖)作为另一个对象内部时

java - 终止一个对象与使它无效一样吗?

c# - 规范模式实现帮助

c++ - 类的常量成员变量可以在方法而不是构造函数中初始化吗?

design-patterns - 模式 : Similar behavior who can be different

php - 在 PHP 中用类扩展特征?

java - 检测 Android 设备震动事件的良好架构?

java - 从 Java 到 Ruby 的状态设计模式

scala - 在 Scala 中动态选择记录器的实现