工厂模式

之前我有写过简单工厂模式,那么这次我来说说工厂模式,工厂模式理解起来其实很简单,以之前我举过的计算器实现例子来说,简单工厂模式设计就是:

1、首先定义运算类接口

2、然后加减乘除等运算继承运算类,实现运算方法

3、然后定义一个简单工厂类方法,根据不同的运算,调用不同的运算方法

4、最后客户端调用运算类中的方法,以此来调用运算方法。

UML结构图如下:
在这里插入图片描述

工厂模式

那么工厂模式是怎么样的?工厂模式稍微复杂一点:

1、首先定义一个运算类接口

2、然后加减乘除等运算类继承运算类接口,实现运算方法

3、然后定义工厂类接口

4、然后加减乘除等运算工厂类继承工厂类,实现工厂类方法

5,然后加减运算类工厂,返回对应的运算类

6、最后客户端调用工厂类中的方法,以此来调用运算方法。

UML结构图如下:
在这里插入图片描述
这里我简单说下工厂模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

工厂方法模式的UML图如下所示:
在这里插入图片描述

简单工厂模式 VS 工厂模式

我们再来比较一下简单工厂模式与工厂模式:

简单工厂模式:简单工厂模式最大的优点在于工厂中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了具体产品的依赖类

工厂模式:工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是改工厂类的,现在变成了修改客户端类。

但是为什么我们有了简单工厂模式之后,还要使用工厂模式呢?

原因是:工厂模式克服了简单工厂模式开放-封闭的原则,又保持了封装对象创建过程的优点,降低了客户程序与产品对象的耦合。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保留了简单工厂模式的优点,而且客服了他的缺点。但是工厂模式还有一个缺点,就是每加一个产品,就需要加一个产品工厂的类,增加额外的开发工作量。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值