设计模式 总结 常用10种

创建型: 单例 , 工厂 结构型: 适配器 欧洲旅行充电头转换, 笔记本电脑充电需求在欧洲 我的笔记本电源接口是固定的, 而且我有充电需求 在欧洲,政府

创建型: 单例 , 工厂

结构型:

适配器

欧洲旅行充电头转换, 笔记本电脑充电需求在欧洲. 

我的笔记本电源接口是固定的, 而且我有充电需求.

在欧洲,政府提供的插座是固定的(跟国内不一样), 所以必须需要一个适配器协调一下.

代理

经纪人, 经济人要加代理费,歌星,跳舞等明星只管 performance

外观

家庭影院(子系统之间配合, DVD播放,爆米花机, 音响, 投影仪), 不一一操作影院内部,而是Facade(外观面具提供的接口ready(), play(), pause(),end())

装饰者

星巴克咖啡, 加糖,加巧克力,加。。。随意组合

行为型

策略模式

定义一个策略方法作为接口, 然后具体实现不同的方法,但是都是被这个接口所调用.

策略模式,我认为比较简单,跟状态模式有点像,只是要注意,什么时候具体调用策略模式中的哪个具体的方法,要想好。

模板模式

泡茶的例子,泡茶有很多步骤,封装了这些步骤,只提供了泡茶的接口。

观察者模式

天气预报

状态模式

电灯的例子,根据不同的状态,给出不同的行为(每次状态触发,都要考虑维护状态的改变)

 

模板模式, 外观模式,策略模式 区别

外观模式:

  本身并没有改变什么,只是将子系统内部的复杂接口调用,封装起来提供一个外部的总接口.

  实际上基本可以理解为,你也可以一个一个的调用subsystem子系统中的接口. 

策略模式: 

  策略 interface 中封装了很多的 方法,每种方法都是一个类,而且这个类实现了策略的 interface, 基本上可以理解为我们有锦囊妙计,锦囊就是策略的

  interface, 不同的情况,我们都可以使用锦囊妙计帮我们解决问题,只是每次实现时,要根据具体的情况,传入具体的要求给锦囊, 这样锦囊就知道

  拿出哪个妙计来。 所以,我认为这个最好也最简单,随便顶一个一个接口,然后就开始写实现,用哪个,就调哪个,而且锦囊是完整的实现了策略,

  不再需要外部的帮助。 

模板模式:

  提供的是封装的一整套流程,这里有些方法是模板直接实现的(例如例子中的烧水),还有一些(也是模板中的步骤)是有子类(比如茶)来实现的.

  模板更强调的是模板封装流程,而实际对象依照这个流程,产生不多的结果.