美文网首页
利用工厂模式降低代码耦合性

利用工厂模式降低代码耦合性

作者: 慧惠 | 来源:发表于2015-12-08 18:20 被阅读489次

1、工厂模式可以分为三类:

1)简单工厂模式(Simple Factory)

2)工厂方法模式(Factory Method)

3)抽象工厂模式(Abstract Factory)

2、抽象工厂模式与工厂方法模式的区别:

工厂方法模式:

一个抽象产品类,可以派生出多个具体产品类。

一个抽象工厂类,可以派生出多个具体工厂类。

每个具体工厂类只能创建一个具体产品类的实例。

抽象工厂模式:

多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。

一个抽象工厂类,可以派生出多个具体工厂类。

每个具体工厂类可以创建多个具体产品类的实例。

区别:

工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。

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

3、简单工厂模式(静态工厂方法模式):

建立一个工厂(一个函数或一个类方法)来制造新的对象。它存在的目的很简单:定义一个用于创建对象的接口。

比如:客户需要知道怎么去创建一款车,客户和车就紧密耦合在一起了.为了降低耦合,就出现了工厂类,把创建宝马的操作细节都放到了工厂里面去,客户直接使用工厂的创建工厂方法,传入想要的宝马车型号就行了,而不必去知道创建的细节.这就是工业革命了:简单工厂模式:

4、工厂方法模式:

工厂方法模式去掉了简单工厂模式中工厂方法的静态属性,使得它可以被子类继承。这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模式里不同的工厂子类来分担。

例如:当客户不再满足现有的车型号的时候,想要一种速度快的新型车

在以下情况要使用到工厂方法模式:

1)当客户程序不需要知道要使用对象的创建过程。

2)客户程序使用的对象存在变动的可能,或者根本就不知道使用哪一个具体的对象。

5、抽象工厂模式:

抽象工厂模式和工厂方法模式的区别就在于需要创建对象的复杂程度上。而且抽象工厂模式是三个里面最为抽象、最具一般性的。

例如:随着客户的要求越来越高,宝马车需要配置空调。于是这个工厂开始生产宝马车和配置需要的空调。这时候工厂有二个系列的产品:宝马车和空调.宝马车必须使用对应的空调才能使用.这时候分别使用一个车工厂和一个空调工厂都不能满足我们的需求,我们必须确认车跟空调的对应关系。因此把车工厂跟空调工厂联系在一起。因此出现了抽象工厂模式。

抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足一下条件:

1)系统中有多个产品族,而系统一次只可能消费其中一族产品。

2)同属于同一个产品族的产品一起使用。

参考链接:http://blog.csdn.net/hguisu/article/details/7505909

相关文章

  • 利用工厂模式降低代码耦合性

    1、工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory M...

  • Java设计模式-工厂模式

    一、概述 工厂模式的出现源于增加程序的可拓展性,降低耦合度。之所以叫做工厂模式,是用工厂生产产品来形象的比喻代码中...

  • java---工厂模式

    一:概述 工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之所以叫做工厂模式,是用工厂生产产品来形象的比喻代码...

  • 代理模式-图片懒加载

    图片延迟加载网上已经很多,我用代理模式让代码各司其职,降低其耦合性。

  • [UGUI]Unity工程中的UI优化和坑

    1.UI管理设计模式 使用工厂模式创建window,通过UI名字索引进行动态创建,降低耦合性,至于gameobje...

  • Django中MVC与MVT设计模式的区别系列之一

    MVC设计模式 MVC设计模式核心: 解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。...

  • MVC MVT MVVM

    MVC设计模式核心:解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。mvc.pngMV...

  • 设计模式01--简单工厂模式(iOS)

    1、简单工厂模式简述 简单工厂模式(FACTORY),通过面向对象的封装,继承和多态来降低程序的耦合度。将一个具体...

  • python高级-装饰器

    装饰器:对已有的代码进行功能的扩展和增加设计模式:golf 23种 解耦合 简单工厂模式 抽象工厂模式 ...

  • 设计模式之工厂方法模式

    工厂方法模式具有良好的封装性,可以有效降低模块间的耦合,应用场景,比如有多种网络协议:POP3,IMAP,HTTP...

网友评论

      本文标题:利用工厂模式降低代码耦合性

      本文链接:https://www.haomeiwen.com/subject/lguehttx.html