2

在深入阅读《设计模式》(四人组)这本书之前,我想问一个一般性问题......

这本书的简介提到它将使用 C++ 作为主要代码示例,你们中的任何 Java 专家都读过这本书,我是否能够轻松地联系起来,更重要的是,用 Java 实现设计模式?

我知道这是一个有点模糊的问题,但如果这本书真的更适合 C++ 程序员,我不想浪费我的任何时间。

我期待你的意见!

4

2 回答 2

14

那本书绝不会浪费时间。它可以很容易地翻译成任何面向对象的语言。例如:我发现我的 Python 设计因为这本书而得到了改进,尽管 Python 中的设计模式以明显不同的方式实现。

这本书为我提供的(并且是整个概念的明确目标)是向我和其他人表达我的意图的语言。认为或说“访问者可以遍历此组合”比明确表示您希望有条件地应用于嵌套数据结构的元素的解耦功能集更容易。

现在:当心模式错误。

并非所有东西都必须是模式,有时我浪费了大量时间来尝试“模式化”完美运行的软件。

所以,我会得出结论:阅读、学习、使用它,但不要滥用它。

于 2013-10-02T04:16:11.780 回答
0

一点都不麻烦,而且例子不用太复杂的C++。

我发现的主要问题是一些示例是为 Smalltalk 编写的,这些示例更难理解(如果您不了解 Smalltalk)并且更难以翻译成 Java。

例如,在Decorator模式中的一个变体是您在装饰器中调用一个方法(Smalltalk 中的“消息”),如果它没有定义这样的方法,则更改默认值以将该方法/消息发送/委托给装饰对象。

于 2013-10-02T00:58:29.380 回答