17、memento 备忘录
获取一个对象内部状态并保存,便于恢复该状态
原发器ori:创建备忘录类,memento->setStat(),getStat();
备忘录memento:保存原发器的状态,并不允许其他人访问,一般方法私有,但设置原发器类作为友元
负责人care:负责保存备忘录的指针 调用ori->createMemenyo()
优缺点:
简化原发器
备忘录的代价可能很高
用友元可能读行不好
用例:
撤销操作
18、state 状态
对象在内部状态改变时,改变行为
对象方法根据内部变量做不同处理
19、strategy 策略
定义一系列算法,封装起来,使得他们能够互相互换(接口一直或转换后能一致),需求变化时,替换算法就好。
优缺点:
更方便替换不同的算法
增加对象的数目
20、template method 模板方法
基类定义好某一类接口,子类具体实现,这一类接口就叫模板方法
例:
访问网站或者ftp,
open()->login()->get()->leave()
基类定义好这系列的方法后,子类就能根据需求具体实现