设计模式工厂三姐妹

    最近对于设计模式中的工厂三姐妹——大姐(抽象工厂)、二姐(工厂模式)、三姐(简单工厂),进一步学习了,以下是我的一些认识。

一、简单工厂

    

    运用了一个单独的类将创建实例的过程独立出来,这就是简单工厂类,如:简单运算工厂类,至于在运用的过程中,如果增加运算运算,需要修改运算工厂类,这就违背了

开放—封闭原则(尽可能使代码做到扩展的开放,更改的封闭,也就是对于程序的改动通过增加代码进行,而不是更改现有的代码)。

二、工厂模式


    相对于以上的简单工厂增加了工厂子类,使一个类的实例话延迟到子类,这样在增加运算的时候只需要增加对应的运算工厂就可以了,这样就解决了简单工厂不符合开放-封闭原则的缺点。

简单工厂VS工厂方法

    工厂方法解决了简单工厂加Case判断的麻烦,但是每次增加运算需要在代码中增加相关的工厂 并且再去修改客户端,这样也是很复杂的。

    其实完全可以运用简单工厂+反射,这样就比单单的工厂方法简单多了。

三、抽象工厂


    抽象工厂易于交换产品系列(一个应用只需要在初始化的过程中出现一次,所以改变应用的具体工厂会很容易),并且将创建实例过程与客户端分离,产品的具体类名也被具体的工厂实现分离。

    但是如果增加功能时,抽象工厂需要修改很多地方,这里就用一个简单工厂代替了所有具体工厂。

    问题又出来了,用简单工厂会遇到Case判断分支的麻烦,不过没关系,前面提到过运用反射这个问题就很容易解决了。


    对于工厂三姐妹目前只是了解了这些,相信会在以后的编程路上对她们的理解更加深刻,期待以后的再次相遇。

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创业之路&下一个五年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值