创建性模式-工厂

标签(空格分隔): 简单工厂模式 工厂模式 抽象工厂模式


1、简单工厂模式:
简单工厂模式,由父类决定,初始化对象的类型。
它主要有三个参与者:抽象角色(父类),具体产品角色和工厂角色。其中由工厂角色(负责返回抽象角色)根据传入的参数来决定返回的具体产品角色。
简单工厂模式最大的优点在于,将具体初始化对象的逻辑转移到工厂中,客户端只需要提供参数给工厂类就能得到对应的实例化相关的类,去除了客户端对具体产品的依赖。


2、工厂模式:
工厂模式,定义一个创建对象的接口, 让子类决定实例化哪一个类, 工厂方法使一个类的实例化延伸到了子类
由于简单工厂模式是由工厂类来决定实例化哪个对象,那每次增加/修改功能的时候都需要调整对应工厂类的逻辑判断代码,违反了开发-封闭原则,所以工厂方法将实例化的判断衍生到子类中,来解决这个问题。
工厂模式解决的是客户端开闭原则问题,当有功能增加的时候只需要增加对应的子类就能解决问题,但是逻辑判断的问题还是存在的,只不过将对应的判断逻辑转移到客户端位置(但是因为涉及到需求变动,客户端的代码修改是必须的,所以并不存在开闭原则问题)。


3、抽象工厂模式:
抽象工厂模式,提供一个可以创建一系列相关或互相一路来对象的接口,而无须指定它们具体的类型。
抽象工厂模式中,应该存在多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类可以创建多个具体产品类的实例。
抽象工厂模式可以看作是对工厂模式的二次包装,即生成具有工厂模式行为的类的一种工厂模式(这里的工厂模式可以用1、简单工厂/2、工厂模式)。也就是说,抽象工厂模式,实际上是用来生成工厂的工厂模式,当业务场景单一,且不会发生变化的极端情况下,抽象工厂模式≈工厂模式。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 9,426评论 1 15
  • 【学习难度:★★☆☆☆,使用频率:★★★★★】直接出处:工厂方法模式梳理和学习:https://github.co...
    BruceOuyang阅读 3,851评论 0 2
  • 设计模式基本原则 开放-封闭原则(OCP),是说软件实体(类、模块、函数等等)应该可以拓展,但是不可修改。开-闭原...
    西山薄凉阅读 9,407评论 3 14
  • 香水作为一种饰品,也有着分明的性别界限。 花香调果香调甜的冒泡,就只适合裙摆飞扬的可爱女孩子;沉稳或略显辛辣的木质...
    百目鬼遥阅读 1,787评论 0 0
  • 肾结石并不可怕,一般通过并不复杂的中药内服就能解决,如《排安茶》,可以调整身体的免疫机制,改善肾脏的病理结构,使结...
    大海_f916阅读 2,900评论 0 0

友情链接更多精彩内容