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

设计模式——工厂模式分析

时间:2017-09-29 00:28:25      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:设计模式 工厂模式

设计模式——工厂模式分析

一、工厂模式优点

    工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的工厂模式根据抽象程度的不同分为三种:简单工厂模式(静态工厂模式)、工厂方法模式、抽象工厂模式。工厂模式是编程中经常用到的一种模式主要优点有:

    A可以使代码结构清晰,有效地封装变化。在编程中,产品类的实例化有时候是比较复杂和多变的,通过工厂模式,将产品的实例化封装起来,使得调用者根本无需关心产品的实例化过程,只需依赖工厂即可得到自己想要的产品。

    B对调用者屏蔽具体的产品类。如果使用工厂模式,调用者只关心产品的接口就可以了,至于具体的实现,调用者根本无需关心。即使变更了具体的实现,对调用者来说没有任何影响。

    C降低耦合度。产品类的实例化通常来说是很复杂的,它需要依赖很多的类,而这些类对于调用者来说根本无需知道,如果使用了工厂方法,我们需要做的仅仅是实例化好产品类,然后交给调用者使用。对调用者来说,产品所依赖的类都是透明的。

    抽象工厂模式是工厂方法模式的升级版本,用来创建一组相关或者相互依赖的对象。与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的产品则是衍生自不同的接口或抽象类。

在抽象工厂模式中,有一个产品族的概念:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。

二、不同工厂模式的异同

1工厂方法模式特点

工厂方法模式特点:

 一个抽象产品类,可以派生出多个具体产品类。   
    一个抽象工厂类,可以派生出多个具体工厂类每个具体工厂类只能创建一个具体产品类的实例。

2、抽象工厂模式特点

抽象工厂模式特点
    多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。   
    一个抽象工厂类,可以派生出多个具体工厂类每个具体工厂类可以创建多个具体产品类的实例。 

3、工厂方法模式与抽象工厂模式区别

 工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。   
    工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。


本文出自 “生命不息,奋斗不止” 博客,谢绝转载!

设计模式——工厂模式分析

标签:设计模式 工厂模式

原文地址:http://9291927.blog.51cto.com/9281927/1969575

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