创建型模式

来源:互联网 发布:大鱼海棠正版周边淘宝 编辑:程序博客网 时间:2024/05/17 02:19

(一)、概述

创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。这些设计模式在对象创建的类型、主体、方式、时间等方面提高了系统的灵活性。在软件工程中,创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题创建型模式由两个主导思想构成。一是将系统使用的具体类封装起来,二是隐藏这些具体类的实例创建和结合的方式。

(二)、类型

(三)、分述

1.抽象工厂模式

概况

提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。

结构图

 

适用性

(1)当一个类不知道它所必须创建的类的时候;

(2)当一个类希望由它所穿件的对象的时候;

(3)当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪个帮助子类是代理者这一信息局部化的时候。

效果

(1)用工厂方法创建对象通常比直接创建的具体对象更灵活;

(2)通过面向对象的手法,将所要穿件的具体对象的创建的具体对象的创建工作延迟到子类,从而提供了一种扩展的策略,较好的解决了这种紧耦合的关系。

 

2.建造者模式

概况

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可与创建不同的表示。

结构图

 

适用性

(1)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式使;

(2)当构造过程必须允许被构造对象有不同的表示时。

效果

(1)可以改变一个产品的内部表示;

(2)将构造代码和表示代码分开;

(3)可对构造过程进行更精细的控制。

 

3.工厂方法模式

概括

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

结构图

 

适用性

(1)当一个类不知道它所穿件的对象的类的时候;

(2)当一个类希望由它的子类来指定它所创建的对象的时候;

(3)当类将职责委托给多个辅助子类的一个,而且将“具体是那个辅助子类”的信息局部化

效果

(1)用工厂方法在一个类内部穿件对象通常比直接穿件对象更灵活;

(2)此模式给子类一个挂钩以提供对象的扩展版本;

(3)连接平行的类层次。

 

4.原型模式

概况

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

结构图

 

适用性

(1)一个系统应该独立于它的产品创建、构成和表示时;

(2)当要实例化的类是运行时刻指定的;

(3)避免穿件一个与产品类层次平行的工厂类层次;

(4)当一个类的实例只能有几个不同状态组合中的一种时。

效果

(1)运行时刻增加和删除产品;

(2)改变值以指定新的行为;

(3)改变结构以指定新对象;

(4)减少子类的构造。

 

5.单例模式

概况

保证一个类仅有一个实例,并提供一个访问它的全局访问点

结构图

 

适用性

(1)当类只有一个实例,且Client可以从一个众所周知的访问点访问它时;

(2)当这个唯一实例应该是通过子类可扩展的,且Client应该无需更改代码就能使用一个扩展的实例时。

效果

(1)对唯一实例的受控访问;

(2)缩小名空间;

(3)允许对操作和表示的精化;

(4)允许可变数目的实例;

(5)比类操作更灵活。

 

 

原创粉丝点击