设计模式(一)工厂模式

一、工厂模式分类

1.简单工厂模式
2.工厂方法模式
3.抽象工厂模式

二、什么是简单工厂模式?

简单工厂模式属于创建型模式。
简单工厂模式,解决的是在多个基类的继承类中如何选择对应的类实例化。
在这里插入图片描述
简单工厂模式的优缺点:
优点:在工厂类中包含了必要的逻辑判断(比如说,具体要用到哪种算法),根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。
简单工厂模式的结构:
Factory(工厂)核心部分:负责实现创建所有产品的内部逻辑,工厂类可以被外界直接调用,创建所需对象。
***Produce(抽象类产品)***:工厂类所创建所有对象的父类。封装了产品对象的公共方法,所有具体产品为其子类对象
***ConcreteProduce(具体类产品)***:简单工厂模式的创建目标。所有被创建的对象都是某个具体类的实例。它需要实现抽象产品中声明的抽象方法。

三、工厂方法模式

工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法使一个类的实例化延迟到其子类。
在这里插入图片描述

在这里插入图片描述
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断问题还是存在的,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行,想要增加功能,简单工厂模式是修改工厂类的,工厂方法模式是修改客户端。

四、抽象工厂模式

抽象工厂模式其实是工厂模式的一种扩展,当只有一个类和操作类的时候是需要工厂方法模式的,解决涉及多个产品系列问题,有一个专门的工厂模式叫抽象工厂模式。

抽象工厂模式:提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们具体的类。
在这里插入图片描述
抽象工厂模式的优点和缺点
优点:1.易于交换产品系列,由于具体工厂类,在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它需要改变具体工厂即可使用不同的产品配置。
2.它让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户端代码中。
缺点:当增加新的功能,那么需要修改抽象工厂和具体工厂。

五、抽象工厂+反射

考虑用反射技术来去除swutch或if,解除分支判断带来的耦合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值