工厂模式学习

来源:互联网 发布:怎样增加淘宝销量 编辑:程序博客网 时间:2024/06/05 19:25

简单工厂模式:

创建对象比较复杂,需要做一些初始化的动作,可以考虑使用工厂模式中创建对象来实现;优点:简单工厂模式,客户端不负责对象的创建,只负责对象的调用。对象的创建有工厂模式实现。(单一职责原则)。缺点:由于这个工厂负责所有对象的创建,当子类不断增多的时候,需要修改工厂的创建代码来满足客户端的调用,违反了开闭原则。

工厂方法模式:

针对每个对象创建一个工厂类。优点:工厂方法模式,客户端不负责对象的创建。当有新的子类添加的时候,只需要添加一个子类和一个子类的工厂类即可。不需要修改以前的结构,易于维护和扩展。缺点:需要额外编写更多的代码,增加工作量。

抽象工厂模式:

有不同的等级结构,方法工厂模式只有一层等级结构。优点:可以在类的内部对产品族进行约束;缺点:对产品族扩展十分费力,对产品结构的划分非常重要。

总结

无论是简单工厂模式,工厂方法模式,还是抽象工厂模式,他们都属于工厂模式,在形式和特点上也是极为相似的,他们的最终目的都是为了解耦。在使用时,我们不必去在意这个模式到底工厂方法模式还是抽象工厂模式,因为他们之间的演变常常是令人琢磨不透的。经常你会发现,明明使用的工厂方法模式,当新需求来临,稍加修改,加入了一个新方法后,由于类中的产品构成了不同等级结构中的产品族,它就变成抽象工厂模式了;而对于抽象工厂模式,当减少一个方法使的提供的产品不再构成产品族之后,它就演变成了工厂方法模式。
1 0
原创粉丝点击