码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式--创建型模式

时间:2016-04-16 18:19:31      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

创建型模式:

1.工厂方法模式

2.抽象工厂模式

3.建造者模式

4.单例模式

5.原型模式

详细介绍:

1.工厂方法模式与抽象工厂模式

参考文章:http://laughingchs.iteye.com/blog/1169986

了解工厂模式之前,需要了解简单工厂模式,简单工厂模式,工厂方法模式,抽象工厂模式。这三种模式从上到下逐步抽象,并且更具一般性。

简单工厂模式:

简单工厂模式又称静态工厂方法模式。它定义了一个用于创建产品对象的接口。有以下部分组成:

 --抽象产品类:由接口/抽象类实现

 --具体产品类:继承了抽象产品类,工厂类创建的实例就是具体产品类的实例。

 --工厂类:根据逻辑判断实例化哪种具体产品类,注意一般由static修饰,并且返回类型为抽象类,例如抽象产品类Car,具体产品类Bmw,Benchi..则工厂类中的工厂方法为static Car functionName(string a){...}

uml类图:

技术分享

分析简单工厂模式:当增加产品时,需要增加具体产品类继承抽象产品接口,对产品来说符合开闭原则(对扩展开放;对修改封闭),但是对工厂来说,需要修改工厂类的判断逻辑,不符合开闭原则。可想而知对于新产品的加入,工厂类是很被动的。对于这样的工厂类(在我们的例子中是为司机师傅),我们称它为全能类或者上帝类。由于简单工厂模式中只有一个工厂类来对应这些产品,所以这可能会把我们的上帝累坏了,也累坏了我们这些程序员,因此工厂模式出现了。

工厂模式:增加了抽象工厂类,并且去除了static属性,使得抽象工厂类可以被很多具体工厂类继承。有以下部分组成:

 --抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。

 --具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。

 --抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。

 --具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。

uml类图:

技术分享

 

设计模式--创建型模式

标签:

原文地址:http://www.cnblogs.com/xfvipp/p/5398675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!