设计模式-工厂

工厂模式有那几种,
各模式的弊端和优越性

1. 简单工厂模式

屏幕快照 2017-07-14 下午3.48.19.png

在新加一个product时,需要新家一个继承IProduct的产品类,并且去修改Factory类里创建对象的逻辑,加一个case语句,修改的是工厂类,上层客户端是不需要修改的。只需要针对新产品调用工厂类的创建方法创建新产品就可以了

优点:工厂中包含了必要的逻辑判断,根据客户端选择条件动态实例化相关的类,在客户端来说去除了与具体产品的依赖。
缺点:1.违背了开放-封闭原则,每次添加新产品时需要在工厂类中加一个逻辑判断。把逻辑引入到更上层的客户端。

  1. 在调用工厂类方法创建了好几个对象时,需要修改对象类型时,需要修改多处代码
![Uploading 屏幕快照 2017-07-14 下午4.13.14_135823.png . . .]

2.工厂方法模式

屏幕快照 2017-07-14 下午3.56.51.png

与简单工厂相比,多了一个工厂的抽象类,各种工厂继承这个抽象类,实现接口。客户端使用对象时,根据自己的需求调用不同的工厂类进行创建对象。

优点:添加新产品时,整个工厂和产品体系没有做修改,只是进行了一些扩展
要修改产品类型时,只需要修改一处就可以了


屏幕快照 2017-07-14 下午4.13.14.png

缺点:每加一个产品不单要加产品类,还需要加一个产品工厂的类

3. 抽象工厂模式

屏幕快照 2017-07-14 下午4.28.46.png

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需制定她们的具体的类

为了创建不同的产品对象,客户端需要创建不同的产品工厂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计原则: 要依赖抽象,不要依赖具体类 目录 本文的结构如下: 什么是工厂方法模式 为什么要用该模式 模式的结构 ...
    w1992wishes阅读 1,364评论 0 6
  • 工厂方法模式 介绍 简单工厂模式虽然简单,并且实现了创建和使用分离的功能,但存在一个很严重的问题。当系统中需要引入...
    666真666阅读 284评论 0 1
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,980评论 1 15
  • 概述 先照搬书上工厂模式的定义,即定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延...
    ymjkMaster阅读 484评论 0 0
  • 听过这样一句话,你怎么过一天就会怎么过一辈子。初听这话未免觉得有些夸大其词,但最近偶然读了丰子恺先生的《渐》这篇文...
    是八复呢阅读 290评论 0 0