首页 > 代码库 > Design Patterns 3 不再犹豫---工厂方法模式FactoryMethod
Design Patterns 3 不再犹豫---工厂方法模式FactoryMethod
工厂方法模式FactoryMethod
工厂方法模式的实现把具体产品的创建推迟到子类中,从而解决了简单工厂模式难以扩展的问题。
把简单工厂类分解为抽象基类和若干个具体类如下代码:
//抽象的工厂方法“总部”类FactoryMethod public abstract class FactoryMethod { //返回目标Food对象的抽象的工厂方法Creator public abstract Food Creator(); } //“总部”的具体子类PotatoesFactory public class PotatoesFactory : FactoryMethod { //实现功能的具体的工厂方法Creator public override Food Creator() { //返回new出的具体对象 return new Potatoes(); } } //“总部”的另一个具体子类TomatoesFactory public class TomatoesFactory : FactoryMethod { public override Food Creator() { return new Tomatoes(); } }
如果需要添加新功能/产品时,我们可以利用多态性来轻松完成扩展。
在工厂方法模式中,工厂类与具体产品类具有平行的等级结构,它们之间是一一对应的。
也就是说,增加功能时要“成对”增加。
注意:工厂方法模式中每个具体工厂类只完成单个实例的创建,如果要实现工厂多元化(一个工厂生产多个实例),就要用到抽象工厂模式。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。