1简单工厂

优点
(1)工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。客户端可以免除直接创建产品对象的职责
(2)客户端无需知道所创建具体产品的类名,只需知道参数即可
缺点
(1)工厂类集中了所有产品的创建逻辑,职责过重,一旦异常,整个系统将受影响
(2)使用简单工厂模式会增加系统中类的个数(引入新的工厂类),增加系统的复杂度和理解难度
(3)系统扩展困难,一旦增加新产品不得不修改工厂逻辑,在产品类型较多时,可能造成逻辑过于复杂、
2工厂模式
简单工厂的代码是硬编码的,不符合开闭原则,工厂模式就是来解决这个问题的。

优点:克服了简单工厂违背开放-封闭原则的缺点,又保留了封装对象创建过程的优点,降低客户端和工厂的耦合性
缺点:每次新增一个类,必将新增一个工厂类
3抽象工厂模式
工厂模式虽然符合开闭原则,没次新增一个类,必将新增一个factory类,势必引起类的扩展。抽象工厂就是,新增一个abstractFactory类,一个工厂可以生产一系列产品

有点:分离了具体的类。客户通过抽象接口操纵实例,产品的类名也在具体工厂的实现中被分离,它们不出现在客户代码中
缺点:难以支持新种类的产品。因为抽象工厂接口确定了可以被创建的产品集合,所以难以扩展抽象工厂以生产新种类的产品
4组合模式

缺点:客户端需要花更多时间理清类之间的层次关系
优点:无需关系处理的单个对象,还是组合的对象容器,实现容器之间的解耦合。当有新部件时容易添加进来
本文深入探讨了设计模式中的简单工厂、工厂、抽象工厂和组合模式,分析了每种模式的优缺点,帮助读者理解不同场景下模式的应用。
433

被折叠的 条评论
为什么被折叠?



