橙色
Simple Factory简单工厂
通过传入一个事先设计好的枚举类型,然后返回一个对应的对象,既解耦了对象的创建,还不用再记忆那么多的类名
SimpleFactory简单工厂解决了一些问题,但是它本身也有很明显的问题,就是把所有对象的创建都封装在了一个SimpleFactory类的createProduct函数中,根据传入的参数,选择产生不同的对象,很明显,createProduct这个函数做不到“开-闭”原则,即对原有代码修改关闭,对功能扩展开放,这个函数随着新对象的添加,或者原有对象的删除,都会导致该函数的代码修改,而且有可能影响原来的功能,所以这样的设计不能算完美。
那么接下来看看工厂方法(Factory Method)模式是否能够解决上面简单工厂的问题。
Factory Method工厂方法
仔细理解上面的工厂方法模式,会发现一个问题,就是每一个实例工厂负责生产一个实例产品,也就是一个产品对应一个工厂,一个工厂对应一个产品,那么小米不仅仅生产手机,还生产耳机,智能手环,智能插座等等相关的小米产品簇,不可能给这每一个产品都创建一个工厂类,那样的话代码中的类就太多了,不好维护,而且也不符合实际情况。
Abstract Factory抽象工厂
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。