23种设计模式
一:创建型模式
1.简单工厂模式:提供创建对象的接口
2.工厂方法:为创建对象提供一个接口,并由接口的子类决定实现哪个类,工厂方法将对象的创建过程延迟到其子类.
3.抽象工厂:为创建一系列相关或者相互依赖的对象提供一个接口,并且不指定其具体的类
4.创建者模式:将一个复杂对象的创建过程和表示分离开来,使得相同的创建过程可以实现不同的表示
5.单例模式:一个类同时只能存在一个它的对象,并且提供一个全局的访问点
二:结构型模式:
1.适配器模式:将一个类转换成用户希望的另外一个类,适配器模式使得那些因为接口不兼容而不能一起工作的类可以一起工作
2.装饰模式:动态的为对象增加一些额外的功能,就添加功能来说,装饰模式比实现子类更加灵活
3.代理模式:为其他对象提供一个代理以控制对这些对象的访问
4.桥接模式:将抽象部分和实现部分分离,使他们都可以独立的变化
5.组合模式:将对象组合成树状模式,以表示"整体-部分"的关系,组合模式使用户对单个对象和组合对象的操作具有一致性
6.享元模式:利用共享技术实现支持大量细粒度的对象
7.外观模式:为子系统的一组接口提供一个一致的界面;外观模式定义了一个高层的接口,这个接口使子系统更加容易使用
三:行为型模式:
1.状态模式:allow a object alter its behavior when its internal state changes ,it appears to change its class.
2.观察者模式:观察者模式提供了一个"1对多"的依赖关系,多个观察者对象同时监听一个主题对象,当这个主题对象发生改变时,会通知这些观察者,使他们能够自动更新
3.模板方法模式:模板方法定义了一个算法的骨架,并将算法的一些具体步骤的实现延迟到其子类,模板方法使得子类在不改变算法结构的同时可以更改一些具体的步骤
4.备忘录模式:在不破坏对象封装性的前提下,捕获一个对象的内部状态,并在对象的外部保存这个状态,这样以后就可把对象恢复到以前保存的状态
5.职责链模式:使多个对象都有机会处理请求,以防止请求的发送者和接受者之间的耦合关系.把这些对象组成一个链,并沿着这个链传递请求,直到有个对象处理了这个请求
6.策略模式:定义一个算法家族,并把它们都封装起来,使他们之间可以相互替换.策略模式使得算法的改变不影响客户的使用
7.命令模式:将一个请求封装成一个对象,命令模式可以使用多个请求将客户参数化,以为请求记录日志或为请求排队,以及撤销请求的操作
8.迭代器模式:按照一种方法顺序访问一个聚合对象中的所有元素,而不暴露这个对象的内部表示
9.中介者模式:利用一个中介者对象来封装对象之间的交互,中介者模式使对象之间可以不用显示的相互引用,从而降低它们之间的耦合,并且可以独立的改变它们之间的交互
10.解释器模式:
11.访问者模式:
浙公网安备 33010602011771号