简单工厂模式
Posted Dino林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单工厂模式相关的知识,希望对你有一定的参考价值。
通俗理解:
简单工厂,顾名思义,就是简单的一个工厂。我们想想现实生活中的“简单”工厂,比如易拉罐工厂,一个易拉罐工厂,它可能会生产出百事可乐,雪碧,加多宝等等等等的易拉罐,但我们忽略其外观(属性),那么这些产品的本质就是易拉罐而已,也就是说,它们有一个共同的父类。假设我,是百事可乐易拉罐生产负责人,我想要一批百事可乐易拉罐,那么我就会对工厂说,(或许我们事先已经对好了暗号),“嘿,工厂,给我一批BSKL易拉罐”,当工厂接受到这个消息,它就会生产好一批易拉罐,送到我这里来。同理,雪碧易拉罐(XB),加多宝(JDB),都有各自的“对接暗号”,把暗号给工厂,工厂就会把产品生产给你,这个就是所谓的简单工厂。
简单工厂模式最大的问题在于工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,这一点与开闭原则是相违背的。
简单工厂模式最大的优点在于实现对象的创建和对象的使用分离,将对象的创建交给专门的工厂类负责,但是其最大的缺点在于工厂类不够灵活,增加新的具体产品需要修改工厂类的判断逻辑代码,而且产品较多时,工厂方法代码将会非常复杂。
简单工厂模式适用情况包括:工厂类负责创建的对象比较少;客户端只知道传入工厂类的参数,对于如何创建对象不关心。
以上是关于简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式从青铜到王者第五篇:创建型模式之简单工厂模式( Simple Factory Pattern )