首页 > 其他 > 详细

Design Patterns 3 不再犹豫---工厂方法模式FactoryMethod

时间:2014-08-11 20:48:12      阅读:358      评论:0      收藏:0      [点我收藏+]

工厂方法模式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();
        }
    }

如果需要添加新功能/产品时,我们可以利用多态性来轻松完成扩展。

在工厂方法模式中,工厂类与具体产品类具有平行的等级结构,它们之间是一一对应的

也就是说,增加功能时要“成对”增加。

注意:工厂方法模式中每个具体工厂类只完成单个实例的创建,如果要实现工厂多元化(一个工厂生产多个实例),就要用到抽象工厂模式。

Design Patterns 3 不再犹豫---工厂方法模式FactoryMethod,布布扣,bubuko.com

Design Patterns 3 不再犹豫---工厂方法模式FactoryMethod

原文:http://www.cnblogs.com/wangweiabcd/p/3905243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!