简单工厂模式:适用于已知某些条件后,对类的选择,而这些类都是同一父类的子类。
工厂模式:
抽象工厂:
区别:工厂模式克服了简单工厂违背的开放封闭原则,但是增加了工作量
策略模式:定义了算法家族,分别封装起来,让他们可以相互替换,此模式让算法的改变不会影响到使用它的客户。适合于算法经常改变的地方(商场折扣,返利)。
策略模式中的“算法”,可以理解为某些业务的“规则”,适用于规则经常改变的地方。
依赖倒转:针对接口编程,不要对实现编程(电脑换内存,不需要指定品牌,引脚相同)
装饰者模式:当系统需要新功能的时候,把要装饰的新功能放在单独的类中,并让这个类包装它所要装饰的对象。
适用于:某个类需要增加一些行为,但是这些行为只在某些情况下才执行。
代理模式:被用来为控制,访问对象提供一个代理
模板模式;通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。
外观模式:在数据访问层和业务逻辑层,业务逻辑层和表示层增加一个外观Facade提供一些简单的接口
1.大大降低耦合
2.解决外部调用许多小类带来的困难
3.为遗留代码(庞大复杂粗糙)提供一些接口与新系统交互
建造者模式:创建复杂对象的算法应该独立于对象的组成部分以及它们的装配方式
观察者模式:当一个对象的改变需要同时改变其他对象,并且它不知道有多少对象需要改变时
状态模式:将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个具体的对象之中,所以通过新的子类
可以很容易增加新的状态和转化。目的:消除庞大的条件分支语句,大的分支使他们变得难以修改和扩展。当一个对象的行为取决于它的
状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式(状态多,且复杂)
适配器模式:使用一个已经存在的类,但是它的接口和你要求不相同时,就应该考虑使用适配器模式(双方都不太容易修改的时候)。
备忘录模式:在不破话封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。
组合模式:使得用户对单个对象和组合对象的使用具有一致性
适用:需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象时,就应该考虑使用组合模式。
命令模式:
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将多个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。
中介者模式:没看
工厂模式:
抽象工厂:
区别:工厂模式克服了简单工厂违背的开放封闭原则,但是增加了工作量
策略模式:定义了算法家族,分别封装起来,让他们可以相互替换,此模式让算法的改变不会影响到使用它的客户。适合于算法经常改变的地方(商场折扣,返利)。
策略模式中的“算法”,可以理解为某些业务的“规则”,适用于规则经常改变的地方。
依赖倒转:针对接口编程,不要对实现编程(电脑换内存,不需要指定品牌,引脚相同)
装饰者模式:当系统需要新功能的时候,把要装饰的新功能放在单独的类中,并让这个类包装它所要装饰的对象。
适用于:某个类需要增加一些行为,但是这些行为只在某些情况下才执行。
代理模式:被用来为控制,访问对象提供一个代理
模板模式;通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。
外观模式:在数据访问层和业务逻辑层,业务逻辑层和表示层增加一个外观Facade提供一些简单的接口
1.大大降低耦合
2.解决外部调用许多小类带来的困难
3.为遗留代码(庞大复杂粗糙)提供一些接口与新系统交互
建造者模式:创建复杂对象的算法应该独立于对象的组成部分以及它们的装配方式
观察者模式:当一个对象的改变需要同时改变其他对象,并且它不知道有多少对象需要改变时
状态模式:将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个具体的对象之中,所以通过新的子类
可以很容易增加新的状态和转化。目的:消除庞大的条件分支语句,大的分支使他们变得难以修改和扩展。当一个对象的行为取决于它的
状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式(状态多,且复杂)
适配器模式:使用一个已经存在的类,但是它的接口和你要求不相同时,就应该考虑使用适配器模式(双方都不太容易修改的时候)。
备忘录模式:在不破话封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。
组合模式:使得用户对单个对象和组合对象的使用具有一致性
适用:需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象时,就应该考虑使用组合模式。
命令模式:
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将多个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。
中介者模式:没看