1、工厂模式(创建型)

(1)首先了解下简单工厂模式。如图:

简单工厂模式图1-1

工厂类一般用于生产其他对象。举个例子,有个雪糕工厂可以创建各种雪糕,不用每次需要造一个雪糕时先建一个工厂吧,都是用现成的工厂直接生产。

简单工厂类,根据传的字符串不同,会创建不同的对象。此时有个严重的缺点就是,我增加一种运算,就要手动修改简单工厂类,这样是违背了开闭原则。

为什么说违背开闭原则?

  简单工厂类里面有创建对象的逻辑,当增加之前没有的对象时,需要增加逻辑代码。此时运算类的getResult()只有四种运算,如果我要增加取余数运算,也需要改此代码。

(2)工厂方法模式:定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

使用工厂方法改造图1-1:

工厂方法模式图2-1

仔细观察会发现:工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题从简单工厂迁移到客户端了。

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

推荐阅读更多精彩内容