创建型: 单例 , 工厂
结构型:
适配器
欧洲旅行充电头转换, 笔记本电脑充电需求在欧洲.
我的笔记本电源接口是固定的, 而且我有充电需求.
在欧洲,政府提供的插座是固定的(跟国内不一样), 所以必须需要一个适配器协调一下.
代理
经纪人, 经济人要加代理费,歌星,跳舞等明星只管 performance
外观
家庭影院(子系统之间配合, DVD播放,爆米花机, 音响, 投影仪), 不一一操作影院内部,而是Facade(外观面具提供的接口ready(), play(), pause(),end())
装饰者
星巴克咖啡, 加糖,加巧克力,加。。。随意组合
行为型
策略模式
定义一个策略方法作为接口, 然后具体实现不同的方法,但是都是被这个接口所调用.
策略模式,我认为比较简单,跟状态模式有点像,只是要注意,什么时候具体调用策略模式中的哪个具体的方法,要想好。
模板模式
泡茶的例子,泡茶有很多步骤,封装了这些步骤,只提供了泡茶的接口。
观察者模式
天气预报
状态模式
电灯的例子,根据不同的状态,给出不同的行为(每次状态触发,都要考虑维护状态的改变)
模板模式, 外观模式,策略模式 区别
外观模式:
本身并没有改变什么,只是将子系统内部的复杂接口调用,封装起来提供一个外部的总接口.
实际上基本可以理解为,你也可以一个一个的调用subsystem子系统中的接口.
策略模式:
策略 interface 中封装了很多的 方法,每种方法都是一个类,而且这个类实现了策略的 interface, 基本上可以理解为我们有锦囊妙计,锦囊就是策略的
interface, 不同的情况,我们都可以使用锦囊妙计帮我们解决问题,只是每次实现时,要根据具体的情况,传入具体的要求给锦囊, 这样锦囊就知道
拿出哪个妙计来。 所以,我认为这个最好也最简单,随便顶一个一个接口,然后就开始写实现,用哪个,就调哪个,而且锦囊是完整的实现了策略,
不再需要外部的帮助。
模板模式:
提供的是封装的一整套流程,这里有些方法是模板直接实现的(例如例子中的烧水),还有一些(也是模板中的步骤)是有子类(比如茶)来实现的.
模板更强调的是模板封装流程,而实际对象依照这个流程,产生不多的结果.