设计模式总结之创建型设计模式

本文介绍了五种常用的设计模式,包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。每种模式都提供了类图并阐述了其实现原理及应用场景。

单件模式(Singleton Pattern保证一个类仅有一个实例,并提供一个访问它的全局访问点。它解决的是实体对象的个数问题,其他的都是解决new所带来的耦合关系问题。这里包括多线程单件模式,双重锁定单件模式。

类图:

工厂方法模式(Factory Pattern定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类中。在工厂方法中,工厂类成为了抽象类,其实际的创建工作将由其具体子类来完成。工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去,强调的是“单个对象”的变化。

类图:

工厂模式

 

简单工厂

 

简单工厂模式的最大优点在于工厂类中包含了必要的判断,根据客户端的选择提交见动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。

 

抽象工厂模式(Abstract Factory提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂是所有工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂可以向客户提供一个接口,使得客户可以在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象,强调的是“系列对象”的变化。

类图:

 

 

 

建造者模式(builder):将复杂对象的构建与它的表现分离,使得同样的构建过程能够创建不同的表示。把构造对象实例的逻辑移到了类的外部,在这个类的外部定义了这个类的构造逻辑。他把一个复杂对象的构造过程从对象的表示中分离出来。其直接效果是将一个复杂的对象简化为一个比较简单的目标对象。他强调的是产品的构造过程。

类图:



应用场景:一个站点需要提供两种视图一种是手机一种是PC。业务一致,而构建的视图不一致。此时需要建造者将构建与他的表现分离,构建过程创建不同的表示。这样说或许有些模糊,记住一个关键词“对象部分”变化

 

原型模式(Prototype):用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。和工厂模式一样,同样对客户隐藏了对象创建工作,但是,与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。通过克隆来解决“易变对象”的创建问题

类图:

转载于:https://www.cnblogs.com/cnsym/archive/2013/06/14/3135799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值