该【设计模式参考手册 】是由【jenglot】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【设计模式参考手册 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。面向对象设计模式
面向对象三大机制:“封装、继承、多态”
封装,隐藏内部实现
继承,复用现有代码
多态,改写对象行为
设计原则:
针对接口编程,而不是针对实现编程
优先使用对象组合,而不是类继承
封装变化点
使用重构得到模式
具体的设计原则:
单一职责原则(SRP):
一个类应该仅有一个引起它变化的原因。
开放封闭原则(OCP):
类模块应该是可扩展的,但是不可修改(对扩展开放,对更改封闭)。
Liskov替换原则(LSP):
子类必须能够替换它们的基类。
依赖倒置原则(DIP):
高层模块不应该依赖于低层模块,两者都应该依赖于抽象。
抽象不应该依赖于实现细节,实现细节应该依赖于抽象。
接口隔离原则(ISP):
不应该强迫客户程序依赖于它们不用的方法。
模式分类
从目的来看:
创建型模式:负责对象创建。
结构型模式:处理类与对象间的组合。
行为型模式:类与对象交互中的职责分配。
从范围来看:
类模式:处理类与子类的静态关系。
对象模式:处理对象间的动态关系。
Singleton单件模式(创建型模式)
动机
在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性以及良好的效率。
GoF定义
保证一个类仅有一个实例,并提供一个该实例的全局访问点。
结构
AbstractFactory抽象工厂模式(创建型模式)
动机
在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。
GoF定义
提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。
结构
Builder生成器模式(创建型模式)
动机
在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂的对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
GoF定义
将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
结构
FactoryMethod工厂方法模式(创建型模式)
动机
在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。
GoF定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使得一个类的实例化延迟到子类。
结构
Prototype原型模式(创建型模式)
动机
在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。
GoF定义
使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。
结构
Adapter适配器模式(结构型模式)
动机
在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。
GoF定义
将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
结构
Bridge桥接模式(结构型模式)
动机
一个事物拥有两个使之变化的维度。
GoF定义
将抽象部分与现实部分分离,使它们都可以独立地变化。
结构
Composite组合模式(结构型模式)
动机
客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。
GoF定义
将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。
结构
Decorator装饰模式(结构型模式)
动机
GoF定义
动态地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。
结构
Facade外观模式(结构型模式)
动机
GoF定义
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
结构
Flyweight享元模式(结构型模式)
动机
采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。
GoF定义
运用共享技术有效地支持大量细粒度的对象。
结构
Proxy代理模式(结构型模式)
动机
在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者或者系统结构带来很多麻烦。
GoF定义
为其他对象提供一种代理以控制对这个对象的访问。
结构
TemplateMethod模板方法模式(行为型模式)
动机
在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。
GoF定义
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
结构
Command命令模式(行为型模式)
动机
在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但是某些场合——比如需求要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不适合的。
GoF定义
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志支持可撤销的操作。
结构
Interpreter解释器模式(行为型模式)
动机
GoF定义
结构
Mediator中介者模式(行为型模式)
动机
GoF定义
结构
Iterator迭代器模式(行为型模式)
动机
GoF定义
结构
Observer观察者模式(行为型模式)
动机
GoF定义
结构
ChainOfResponsibility职责链模式(行为型模式)
动机
GoF定义
结构
Memento备忘录模式(行为型模式)
动机
GoF定义
结构
State状态模式(行为型模式)
动机
GoF定义
结构
Strategy策略模式(行为型模式)
动机
GoF定义
结构
Visitor访问者模式(行为型模式)
动机
GoF定义
结构
设计模式参考手册 来自淘豆网m.daumloan.com转载请标明出处.