简单工厂
什么是工厂?
集中产生产品、对外提供生产的产品的地方就是工厂。
1、产品接口
2、产品1类
3、产品2类
4、简单工厂
为什么要用这种模式
Human hm = HumanFactory.getHumanInstance(HumanType.MAN);
1、对于客户端来说,我们需要某个对象只是想使用它,我们无需来创建它。
2、将创建对象的方式集中管理,易于维护。
3、解耦。将使用对象跟创建对象分开,如果创建对象的逻辑有变动,不会影响到使用对象的逻辑。
4、获取对象的方式可以更形象、具体。
缺点描述
如果增加产品类,需要改动获取产品实例的方法逻辑,需要增加相应的判断逻辑跟实例化逻辑。工厂方法还是需要改动。
秉承开闭原则——对增加开放,对修改关闭
改进工厂
工厂接口
改进后的工厂
测试
如此,就可以在增加新产品类型时,就只需要增加枚举实例,不需要改动工厂方法里的逻辑。