《设计模式解析》学习笔记

来源:互联网 发布:软件项目验收 编辑:程序博客网 时间:2024/05/12 19:40

 正在看设计模式解析,希望这本书能对我有帮助

 

花了2周看完了,以下是学习笔记:

 

1 面向对象泛型

1、  面向对象考虑问题的三个视角:概念、规约、实现。

概念:抽象类(接口),泛指某种类型。

规约:类的成员函数,及其参数表。

实现:成员函数的实现。

2、  封装一般意味着各种隐藏。例如,抽象类隐藏子类的具体类型。

3、  功能分解一般是结构化程序员使用的方法,那我们设计阶段(概要设计、详细设计)的功能分解是否不正确?

4、  对象自己负责自己。个人理解:对象不需要进行某种特殊的初始化,就能正确使用。

5、  P17的主程序,负责协调各个功能对象。

 

4 标准的面向对象解决方案

1、  这章的解决方法和我们的方法惊人的相似:虽然可以在不改变已有系统的情况下添加新功能,但是造成了类爆炸。

 

8 开拓视野

1、  对象是具有责任的一个实体。

但是我不清楚如何“划分”对象,比如划分成校验类、下发类、解析类、数据库类,这些似乎也能被看成一个个有责任的实体。但是“直觉”告诉我,这样似乎不对,也许压根就不应该做划分。

2、  封装应该被视为“任何形式的隐藏”,包括:

1)实现细节

2)派生类

3)设计细节

4)实例化规则

3、  将封装看成是通过抽象类或者接口隐藏类。

4、  共通的概念将用抽象类表示。可比性分析所发现的变化将通过具体类(也就是从抽象类派生而来的具有特定实现的类)实现。

5、  在创建对象时使用共性和可变性分析更好。

 

9 Strategy模式

1、  假设变化将会出现,并尝试预测其出现的位置。

2、  考虑设计中什么应该是可变的。它不是考虑什么会迫使设计发生改变,而是考虑什么能够在不引起重新设计的前提下改变。

 

10 Bridge模式

1、  用对象的职责而不是其结构来思考问题。

2、  “为每种变化使用不同的特化”(继承)到“将变化转移到使用或拥有这种变化的对象中”(组合)的转变。

 

13 用模式结局CAD/CAM问题

1、  用模式思考的过程。
1
)找出模式。
2
)分析和应用模式。
   2a
、按背景的创造顺序将模式排序。
  
原则:先考虑系统中需要什么,然后再去关注如何创建它们,即工厂模式是最后要考虑的
   2b
、选择模式并扩展设计。
   2c
、找到其他模式。
   2d
、重复。
3
)添加细节。

 

15 共性与可变性分析

1、  开发人员需要一种方式,首先弄清有些什么东西,然后再尝试找到它们之间的关系。

 

16 分析矩阵

1、  用行发现规则。
用列发现特定情况。

2、  关于客户:
他们会谈的非常具体;它们经常用“总是”表达“通常”,用“从不”表达“很少”。

 

17 Decorator模式

1、  用工厂来生产有特定装饰的对象。

 

18 Observer模式

1、  如果一个要成为观察者的类已经存在,则可以使用Adapter模式进行转换:

 

21 Singleton模式和Double-Checked Locking模式

1、  在多线程应用程序中,Singleton对象通常必须是线程安全的,有状态Singleton应该谨慎使用(看看那个SFACTORY的实现)。

 

24 工厂模式的总结

1、  创建和使用对象的三个主要任务:
1
)根据所履行的责任找出对象。
2
)决定如何使用这些对象。
3
)决定如何管理这些对象。

2、  对于系统中的任意两个实体AB,应该将它们之间关系限制为A使用B,或者A创建/管理B

 

25 设计模式回顾:总结与新起点

1、  这个模式隐藏了什么实现?这样我们就可以修改它。

2、  它如何将问题域分解为多个责任。(解析、下发、DB?)

 

原创粉丝点击