设计模式学习笔记(二)

(二)创建模式(Creational)
1.工厂方法(Factory Method)。简单方式是创建一个声明工厂方法的抽象类或接口,不同的子类(实施者)可被设计成在整个范围内实施工厂方法。另一个策略是使用工厂方法的默认实施创建一个其他的创建者类。
使用工厂方法可以解决传统中应用的一些缺陷:每个应用对象(要使用类层次结构所提供服务)都需要实施类选择标准,因此,在应用对象与服务提供方(类层次结构)之间产生高度耦合。选择标准改变时,应用对象都要相应的更改,类选择的标准要考虑,可能会影响选择过程的所有因素。因此,应用对象的实施可能回包含不适当陈述,如果类层次结构中的不同类需要以不同的方式示例,应用对象的实施可能会变得更复杂。应用对象需完全了解供方中每个类的存在性和功能。
工厂方法模式将所需要的功能封装在称为“功能方法的指定”方法中以选择相应类,因此工厂方法被定义为类中的方法。工厂方法模式清除了应用对象处理不同类选择标准的需要,还将实施选定类示例所需的任何特殊机制,这在层次结构中的不同类需要以不同的方式示例时非常适用。由于工厂方法将选定的类示例作为父类类型的对象返回,因此应用对象无须了解层次结构中类的存在性。


2.单例模式(Singleton)。在应用程序的生命周期中,可能只需要一个给定的类的示例,而且仅限于一个实例,单例模式可以用于确保只有一个类实例的职责属于类本身。而客户对象不必处理这些细节。这种自己保持真单个实例性质的类称为单例类。
在单例类中可使用一下策略:使构造器成为专用构造器(private关键字)防止客户对象调用创建对象;提供访问实例的静态公共接口;应用管程(synchronized)确保多个线程使用同一种方法。


3.抽象工厂方法(Abstract Factory)。客户机对象想创建其中一个相关依赖类的实例,但并不必知道要实例化那个特定的具体的类,如果没有抽象工厂,则需要在创建实例处指明选择相应类所需要的实施。


4.原型模式(Prototype)。先创建一个对象,将其指定为原型对象,通过复制原型对象并进行所需要的修改创建其他对象。在复制对象时,面向对象语言有两种方式:浅复制、深复制。一般是浅复制即基本类型成员将是直接复制,其对象成员成为引用。深复制需实施cloneable接口,通过重载clone方法实现对象的复制。


5.构造者模式(Builder)。将构造逻辑从对象类型转移到称为“构造者”(Builder)类的单独类中,会有多个这样的构造者类来构造对象,每个类均具有一系列适合的步骤实施,此类构造者实施将产生不同的对象表示。构造者模式使设计更具模块性,添加新实施(即新构造者)变得更容易。对象构造过程独立与构造对象的组件,能对构造过程效大的控制,就实施构造过程中的每个步骤都可以声明为共同接口的方法,由不同的构造者来实施。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值