关于工厂方法实现类、归属对象及模式优势的技术问询
工厂方法模式相关问题解答
1. 哪个类实现Factory Method?
- 抽象工厂类(Abstract Factory)仅定义工厂方法的抽象接口,**具体工厂类(Concrete Factory)**是实际实现Factory Method的类,负责创建对应的具体产品对象。
2. 工厂方法的归属与模式优势
归属说明
Factory Method属于专用的工厂对象(即具体工厂类),而非业务对象。实际使用时,你需要在需要创建对象的地方注入具体工厂实例,调用其实现的工厂方法来生成产品,不需要让业务对象自身承担工厂的职责。
对比简单工厂的核心优势
简单工厂模式里,单一工厂类包揽所有产品的创建逻辑(比如animalFactory.createDog()),如果要新增产品(比如加个createCat()),必须修改原有工厂类的代码,直接违反开闭原则。
而工厂方法模式的核心优势体现在:
- 扩展新产品时,只需要新增对应的具体产品类和具体工厂类,完全无需修改现有代码,严格符合开闭原则。
- 产品的创建逻辑被延迟到具体工厂子类中实现,让子类自主决定实例化的产品类型,代码耦合度更低,灵活性更强。
- 每个具体工厂只负责创建一类产品,职责单一,符合单一职责原则。
内容的提问来源于stack exchange,提问作者cobby
相关产品推荐
相关产品推荐

