以前读的是《heade first设计模式》,现在换《设计模式(刘伟著)》来读。
共有23种常见设计模式,以下为21种设计模式的读书笔记,遗留两种:享元模式和访问者模式。
——引言
(一)最大收获
最大的收获是,以前老是把“建造者模式”和"外观模式"弄混,现在终于分开弄明白了。
书中举的例子并不恰当,搞得像是KFC套餐组装,既可以用建造者模式实现,也可以用外观模式实现。
两者在类关系上及其相似,但在具体对象行为上有本质的区别:
前者其实可以用汉堡包组装来描述,各个组件按照先后顺序组装为汉堡包。而且汉堡包才是最终的目的。任何一个组件不正常,那个最终目的就会无法完成。
后者可以用KFC套餐来描述,各个组件不分先后顺序拼凑在一起,成为一个套餐。组件与组件之间没有必须聚合在一起的向心力(即:没有一个build函数把他们捏在一起)。任何一个组件表现不正常,仅表现为可用率下降(即顾客吃掉套餐中正常部分,饱腹度没有达到100%)。
(二)基本概念
模式分类:
关系:
(三)创建型模式
简单工厂模式
工厂模式:
抽象工厂模式:
建造者模式:
原型模式
单例模式
(四)构造型模式
适配器模式
桥接模式:
组合模式:
装饰模式:
外观模式:
代理模式:
(五)行为型
职责模式:
命令行模式
迭代器模式
中介者模式
备忘录模式
观察者模式:
状态模式:
策略模式
模板模式