设计模式:可重用面向对象软件的元素

时间:2013-10-02 00:50:26

标签: java c++ design-patterns

在深入探讨设计模式(四人帮)之前,我想问一个普遍的问题......

本书的介绍提到它将使用C ++作为主要代码示例,让任何Java专家阅读本书,我是否能够轻松地进行关联,甚至更重要的是,在Java中实现设计模式?

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

我期待你的意见!

2 个答案:

答案 0 :(得分:11)

这本书几乎不会浪费时间。它可以轻松转换为任何面向对象的语言。例如:我发现我的Python设计因本书而得到了改进,尽管Python中的设计模式以不同的方式实现。

这本书为我提供的内容(并且是整个概念的明确目标)是用语言表达我对我和他人的意图。更容易思考或说“访问者可以遍历这个复合体”,而不是明确表示您希望有条件地将一组功能应用于嵌套数据结构的元素。

现在:小心模式错误。

并非所有东西都是模式,有时我浪费了大量的时间来试图“模式化”完美的工作软件。

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

答案 1 :(得分:0)

完全没有问题,并且示例中没有使用过于复杂的C ++。

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

例如,在Decorator模式中,变体是您在装饰器中调用方法(Smalltalk中的“message”),如果它没有定义此类方法,则将默认值更改为send / delegate方法/消息到装饰对象。