码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:des   style   blog   strong   ar   问题   div   代码   

工厂方法模式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

标签:des   style   blog   strong   ar   问题   div   代码   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!