设计模式:可重用的面向对象软件的元素
Design Patterns: Elements of Reusable Object-Oriented Software
在深入研究《设计模式(四人帮)》一书之前,我想问一个一般性的问题......
本书的引言提到它将使用C++作为主要代码示例,你们中的任何一个Java专家是否读过这本书,我是否能够轻松地在Java中实现设计模式?
我知道这是一个有点模糊的问题,但如果这本书真的更适合C++程序员,我不想浪费我的任何时间。
我期待您的意见!
这本书几乎不会浪费时间。它可以很容易地翻译成任何面向对象的语言。例如:我发现我的Python设计因为这本书而得到了改进,尽管Python中的设计模式以明显不同的方式实现。
这本书为我提供的(也是整个概念的明确目标)是向我和他人表达我的意图的语言。思考或说"此组合可以被访问者遍历"比阐明您希望有条件地将一组解耦的功能应用于嵌套数据结构的元素更容易。
现在:当心模式错误。
并非一切都必须是一种模式,有时我浪费了大量时间试图"模式化"完美工作的软件。
所以,我的结论是:阅读它,学习它,使用它,但不要滥用它。
一点也不麻烦,而且示例不会使用太复杂的C++。
我发现的主要问题是有些例子是为Smalltalk编写的,这些例子更难理解(如果你不了解Smalltalk),也更难翻译成Java。
例如,在Decorator
模式中,一种变体是您在装饰器中调用一个方法(Smalltalk 中的"消息"),如果它没有定义此类方法,则更改默认值以将该方法/消息发送/委托给装饰对象。
相关文章:
- 分段错误(内核转储) C++面向对象编程
- 由于缺少类模板,NVCC 编译面向对象代码时出现问题
- 在C++面向对象程序中,谁负责删除传递给构造函数的对象
- 是否有一种设计模式或面向对象的基本原则来处理这种共享资源的情况?
- 对"车辆的 vtable"的未定义引用 - 面向对象的编程练习
- 关于 C++ 中面向对象中的 decltype 类型
- ptrdiff_t可以表示指向同一数组对象元素的指针的所有减法吗?
- 多态性的面向对象方法
- 成员功能在面向对象的框架中返回std :: vector.size()的效率
- 以面向对象的方式解析自定义数据包
- 面向对象编程 - 位域私有结构的公共参考
- 面向对象的编程-C 练习
- 如何使用面向对象的技术在 win32 和 c++ 中创建编辑控件
- C++面向对象的字典程序
- 面向对象架构,用于简单的基于着色器的GL程序
- 面向对象 成本计算C++不起作用
- 面向对象编程和对象组合,如何放置组合属性?
- 我在哪里可以找到一些 c++ 中的好例子来研究面向对象的概念
- 面向对象的设计选择
- 设计模式:可重用的面向对象软件的元素