软件设计23种设计模式

工厂方法模式(创建型)

定义了一个接口用于创建对象,该模式由子类决定实例化哪个工厂类。该模式把类的实例化推迟到了子类。

抽象工厂模式(创建型)

该模式提供了一个接口用于创建一组相关或相互依赖的对象;该模式由子类选择决定具体的实例化类。抽象工厂方法模式中工厂类(核心)将具体创建产品的工作交给子类去做,仅负责给出具体工厂类必须实现的接口。

建造者模式(创建型)(生成器模式)

分离一个复杂对象的构造与表示。该模式将一个复杂对象分解为多个简单对象,然后逐步构建出复杂对象。该模式中,产品组成结构不变,但每个部分可以灵活选择。

单例模式(创建型)

一个类只有一个自身创建的实例,提供该实例给所有其他对象。

原型模式(创建型)

指定一个已创建的实例作为原型,通过复制该原型来创建对象。系统中存在大量相同,相似的对象,利用构造函数来创建对象,比较耗费资源。用原型模式生成对象就很高效。


适配器模式(结构型)

兼容不同接口,使其能协同工作。
该模式分为类适配器模式,对象适配器模式。
(1)类适配器模式:该模式使用多重继承方式,进行接口间的匹配。该模式耦合度较高,要求开发者了解组件内部结构,实际应用较小。
(2)对象适配器模式:该模式对象的匹配依赖于对象组合。

组合模式(结构型)

将对象组合成树型结构,用于表示部分-整体(树型)关系。

装饰模式(结构型)

使用组合关系创建装饰对象,可以不改变真实对象的类结构,又增加了动态额外的功能。

外观模式(结构型)

为了让子系统更加好用,为子系统中的一组接口提供一个一致的界面,一个高层接口。

享元模式(结构型)

利用共享技术,复用大量的细粒度对象。

代理模式(结构型)

让其他对象可以用代理的方式控制访问本对象。


模板模式(行为型)

将算法的一些步骤延迟到子类中实现,使得子类可以在不改变算法结构的情况下,重新定义该算法的某些特定步骤。

解释器模式(行为型)

依据某一语言及其文法表示,来定义一个解释器(表达式)通过该解释器使用该表示来解释语言中的句子。

责任链模式(行为型)

多个对象有可能处理某一请求时,为避免冲突,将这些对象连成一条链,并沿着该链传递该请求,直到有一个对象处理它为止。

命令模式(行为型)

将一个请求封装为一个对象,这样发出请求和执行请求就成为了独立的操作,可以进行请求的排队,撤销操作,记录请求日志。

迭代器模式(行为型)

提供一个对象来顺序访问聚合类(数据集合,列表等),而不暴露聚合类的内部细节。

中介者模式(行为型)

利用一个中介对象,封装对象间的交互。引入中介者后,各对象间不需要显示引用,从而使对象之间成为松耦合关系。

备忘录模式(行为型)

备忘录模式又称为快照模式。在不破坏封装性的前提下,捕获对象内部状态,并保存,以便以后,可以恢复到该状态。

观察者模式(行为型)

该模式针对的是对象间的一对多的依赖关系,当被依赖对象状态发生改变时,就会通知并更新所有依赖它的对象。

状态模式(行为型)

状态模式中,把“判断逻辑”放入状态对象中,当状态对象的内部状态发生变化时,可以根据条件相应地改变其行为。而外界看来,更像是对象发生了改变。

策略模式(行为型)

一一封装各个算法,不同的算法可以相互替换,但并不影响客户的使用。

访问者模式(行为型)

分离数据结构与数据操作,在不改变元素数据结构的情况下,进行添加元素操作。

你可能感兴趣的:(软件设计师,设计模式,软件工程)