简单工厂模式的优缺点?
优点:
简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。
通过它,外界可以从直接创建具体产品对 象的尴尬局面中摆脱出来。
外界与具体类隔离开来,偶合性低。
明确区分了各自的职责和权力,有利于整个软件体系结构的优化。
缺点:
工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则
虽然简单工厂模式能够适应一定的变化,但是它所能解决的问题是远远有限的。
它所能创建的类只能是事先教考虑到的,如果需要添加新的类,则就需要改变工
厂类了。(这个问题在工厂方法模式将得到很好的解决)
应用情景:
工厂类负责创建的对象比较少
客户只知道传入了工厂类的参数,对于始何创建对象(逻辑)不关心
2、简述简单工厂模式与工厂模式的异同?
(1)简单工厂模式
将产品抽象出一个接口,在工厂函数中使用 Switch-Case 判断生产哪个具体产品,
并返回具体产品的父接口引用。
(2)工厂方法模式
a:除将产品抽象出一个接口以便实现多态,还将不同的工厂进行细分,统一继承
自一个接口,将简单工厂中的判断移至客户端。实现了 开-闭原则。
b:客户端若使用一个工厂对象生产多个产品,简单工厂需要修改每个生产函数的
参数,工厂方法模式只需修改初始化语句。