标签:
创建型模式:
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