大话结束都是去年的事情了,但是一直没有验收,就没有写最后的总结。现在补上了
1、设计模式根据目的来分为创建型、结构型和行为型。根据范围来分为类模式和对象模式。
具体见下图:
2、这23种设计模式并不是孤立存在的,很多模式彼此之间存在联系,eg:访问者模式中操作对象结构中的元素时通常需要使用迭代器模式。在解释器模式中终结者表达式和非终结者表达式时可以使用组合模式。
3、应用
用于将请求发送者与请求接受者解耦,请求发送完之后,客户端无须关心请求的接受者是谁,系统根据预定义的规则将请求转发给指定的对象处理——职责链和命令模式
考虑到系统的性能,它们的引入将使得程序在运行时能够节约一定的系统资源——单例模式、享元模式
用于在应用程序中分离一些复杂的算法——策略模式、状态模式
可以避免在设计方案中使用庞大的多层继承结构,从而减少系统中类的总量——桥接模式、装饰模式
4、自己理解的各个设计模式
多种算法——策略模式
增加新的功能——装饰
让客户端依赖于一个抽象——代理模式
分离多层的继承;少继承,多聚合——桥接模式
遍历对象中各个元素——迭代器模式
记录日志,撤销操作——备忘录模式
一对多通讯——观察者模式
多对多通讯——中介者模式
借用外部的借口——适配器
5、小结
在一本书上看到:设计模式只是一个“术”,提供一个解决思路或者灵感,而设计原则、设计思想才是“道”。所以,设计模式学习不止一两遍。。。