设计模式解析
1.基于设计模式的分析和设计
2.功能分解和委托
3.我可能无法知道什么将会变化,但是我能猜到在那里会变化
4.找教室,责任的转移,告诉学生你要他做什么,而非如何去做
5.只要概念不变,请求者就与实现细节的变化隔开了
6.使用对象的优点在于,可以定义自己负责自己的事物
7.理解对象的最佳方式,是将其看成“具有责任的东西”,对象应该自己负责自己
8.在概念层次,抽象类就是其他类的占位符
9.对象都自己负责自己,所以有很多东西不需要暴露给其他对象,这引出了封装的概念。(public,protected,private)
10.对象对自己行为所负的责任越多,控制程序需要负的责任越少,封装使对象内部行为的变化对其他对象变得透明了。
11.当一个类是“一种”另一个类时:is-a(是一种/一个)关系(实现),一个类“包含”另一个类时:has-a(拥有一个)关系(组合和聚集),一个类“使用”另一个类时: use-a(使用一个)关系(关联)。
12.正确的分析和设计要求我们在互相矛盾的关注点之间找到平衡,必须决定问题的那些方面是设计的重点。
13.分析的陷阱:过早的陷入细节
14.留意你的直觉
15.设计模式背后的一个观点,就是软件系统的质量可以客观度量
16.模式的定义是:在某一背景下某个问题的一种解决方案
17.按接口编程,尽量用聚合代替继承,找出变化并封装之
18.Fa?ade模式为系统中的一组接口提供一个统一的接口
19.管理层所受的压力是交付产品而不是维护
20.Bridge模式将抽象与实现解藕,使他们都可以独立地变化
21.Decorator模式动态给一个对象添加一些额外的职责,就增加功能来讲,Decorator模式比生成子类更为灵活
22.Observer模式:定义对象间的一种一对多的依赖关系,当一个对象的状态改变时,所有依赖与它的对象都将得到通知并自动更新
23.TemplateMethod模式:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,不改变算法的给构而重新定义她的步骤