非常感谢你的阅读,如果你觉得好或者对你有帮助,请积极给一个留言反馈以示鼓励。
两者都系工厂模式。
本质都是将创建具体对象的职责和过程从代码中提取出来,从而实现调用者和被调用者解耦的(设计模式)目标。
但之所以会存在两个分支,我们可以从其各自的实质来看:
工厂方法模式(Factory Mehod Pattern) 只产生一类对象;
抽象工厂模式(Abstract Factory Pattern)产生一系列对象;这些对象具有如下特征:相关或者相互依赖。
工厂方法模式可以通过带参数的变种(即结合j2ee Service Location Pattern方式),从而产生多种产品(即一类对象的多个不同的实例)。
抽象工厂模式更注重是相关或者相互依赖的一系列对象,一旦需要改动,只修改某一个具体工厂即可到达修改整个产品系列的目的。
从这一点,如果是涉及一个系列的产品一起工作,我们就应该放弃采用(工厂方法模式的)多个工厂方法来达到与(抽象工厂)相同目的的做法。
因为:如果一个系列的产品一起工作时,一个应用一次只能使用同一个产品系列中一个对象,只需要一个具体工厂类(抽象工厂模式),或者 多个具体工场类(工厂方法模式)。如果这一点可以接受,那修改呢?!
Thanks very much to visit blog, welcome your feedback, your feedback is the Driver && Power to me