关注对象的建立过程。帮助咱们建立对象。html
保证一个类只有一个实例,而且提供一个访问该实例的全局访问点。算法
用来生产同一等级结构中的任意产品(对于增长新的产品,须要修改已有地代码)。网络
用来生产同一等级结构中的固定产品(支持增长任意产品)。ui
用来生产不一样产品族的所有产品(对于新增长的产品无能为力,可是支持增长产品族)。spa
分离了对象子组件的单独结构(由Builder负责)和装配(由Director负责),从而能够构造出复杂的对象。prototype
当经过 new 产生一个对象须要很是繁琐的数据准备或访问权限时,则可使用原型模式。设计
关注对象和类的组织。是从程序的结构上实现松耦合,从而能够扩大总体的类结构,用来解决更大的问题。代理
使原来因为接口不兼容不能一块儿工做的类能够一块儿工做。server
为真实对象提供一个代理,从而控制对其真实对象获得访问。htm
处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度能够独立的扩展在抽象层创建关联。
动态的给一个对象添加额外的功能,比继承灵活。
将对象组合成树状结构以表示“部分和总体”层次结构,使得客户能够统一的调用叶子对象和容器对象。
为子系统提供统一的调用接口,使得子系统更加容易使用。
运用共享技术有效地实现管理大量细粒度对象,节省内存,提升效率。
关注系统中对象之间的相互交互,研究系统在运行时对象之间的相互通讯和协做,进一步明确对象的职责。
将可以处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求。若是能则处理,不然传递给;链上的下一个对象。
将一个请求封装到一个对象,从而使得可用不一样的请求对客户进行参数化。
用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计。
提供一种能够遍历聚合对象的方式。又称为游标(cursor)模式。
若是一个系统中对象之间的联系呈现网状结构,对象之间存在大量多对多的关系,致使关系及其复杂,这时能够引入一个中介者对象,使得各个对象只跟中介者对象打交道,从而将复杂的网络结构化为星型结构。
保存某个对象内部状态的拷贝,使得之后就能够将该对象恢复到原先的状态。
主要用于 1 :N 的通知。当一个对象(目标对象)的状态变化时,它须要通知一系列对象(观察者对象),令它们作出响应。
用于解决系统中复杂对象的状态转换以及不一样状态下行为的封装问题。
策略模式对应于解决某一个问题的一个算法族,容许用户从该算法族中任选一种算法解决一个问题,同时能够方便的更换算法或者增长新的算法。而且由客户端决定调用哪一个算法。
处理步骤父类中定义好,具体实现延迟到子类中定义。
表示一个做用于某对象结构中的各元素的操做,它使咱们能够在不改变元素的类的前提下定义做用于这些元素的新操做。