1。应用设计模式时,先考虑当前面临的设计问题是什么,再考虑与之有类似设计问题的GoF模式,继而用相应的设计模式解决问题即可。这就需要在学习设计模式时理解并记住模式的起因由来,是因何种问题才有的对应设计模式。在运行设计模式时,首先应该考虑的是Problem Pattern,继而才有对应的Design Pattern。
2。 从client的角度体会设计模式的美
从设计模式使用者的角度来体会模式带来的美感和快感,体会OO的封装、抽象、面向接口编程等机制
3。设计模式周期表
用模式在GoF的《设计模式》书中出现的页数作为元素的数字标识,用模式的英文单词首字母作为元素名。简直就是山寨版的化学元素周期表。
4。
Observer是一对多的映射,Command是一对一的映射
Observer是对数据的变化作出响应,Command是对行为的变化作出响应
Observer把数据抽象成subject类,如price, temperature, pressure, data, time等,对外提供获取数据状态的接口;Command把行为封装成Command类,比如openCommand, saveCommand, drawCommand, helpCommand 等。
Strategy模式是对core算法进行替换,类似插件,可以轻易替换。
Decorator模式是对已有的算法进行包装,提供额外的算法,并不改变已有的基本行为,只是提供可选的新行为。
Bridge模式把属性抽象和具体行为分离
Visitor提供了扩展新函数的接口accept( visitor & v)