`
sunqing0316
  • 浏览: 38342 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

创建型模式

 
阅读更多

创建型

创建型模式隐藏了这些类的实例是如何被创建和放在一起,整个系统关于这些对象所知道的是由抽象类所定义的接口。这样,创建型模式在创建了什么、谁创建它、它是怎么被创建的,以及何时创建这些方面提供了很大的灵活性。

创建型模式存在的意义:创建型模式抽象了实例化的过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。创建型模式都会将关于该系统使用哪些具体的类的信息封装起来。允许客户用结构和功能差别很大的“产品”对象配置一个系统。配置可以使静态的,即在编译时指定,也可以是动态的,就是运行时指定。

抽象工厂(开—闭原则,依赖倒转原则)

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

优点:

易于交换产品系列,由于具体工厂类在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置。

它让具体具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户代码中。

缺点:

虽然可以很方便的切换两个数据库访问的代码,但是如果需求来自增加功能,那就要改动类。所以要辩证地看待问题,运用设计模式的时候要看是否适用。

建造者(依赖倒转原则)

将一个复杂对象的构建与它的表示分离,以此来实现松耦合,使得同样的构建过程可以创建不同的表示,用同样的构建过程创建不同的产品给客户。

首先来了解一下什么是内聚性与耦合性。内聚性描述的是一个例程内部组成部分之间相互联系的紧密程度。而耦合性描述的是一个例程与其他例程之间联系的紧密程度。软件开发的目标应该是创建这样的例程:内部完整,也就是高内聚,而与其他例程之间的关系则是小巧、直接、可见、灵活的,这就是松耦合。

工厂方法(合成/聚合复用原则、开—闭原则)

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

通常设计应该从工厂方法开始,当设计者发现需要更大的灵活性时,设计便会向其他创建型模式演化。当设计者在设计标准之间进行权衡的时候,了解多个创建型模式可以给设计者更多的选择余地。

工厂方法能使我们在增加新的产品的时候,不需要去更改原有的产品体系和工厂类,只需扩展新的类就可以了。这是判断一个模式是否优秀的非常重要的标准。

原型(依赖倒转原则)

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

建立相应数目的原型并克隆它们通常比每次用合适的状态手工实例化该类更方便一些。

单例(单一职责原则)

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

对一些类来说,一个实例是很重要的。一个全局变量可以使得一个对象被访问,但它不能防止客户实例化多个对象。单例模式的优势就是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且单例还提供了一个访问该实例的方法。这就使得对唯一的实例可以严格地控制客户怎样以及何时访问它。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics