码迷,mamicode.com
首页 > Windows程序 > 详细

(C#)工厂方法模式

时间:2015-08-05 11:57:38      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

1.工厂方法模式

  第一了一个用于创建对象的接口,让子类自己决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

技术分享

*工厂方法模式即克服了简单工厂模式违反开放-封闭原则的缺点,又保留了封装对象创建过程的优点。


2.实例

namespace 工厂方法模式
{
    class Program
    {
        static void Main(string[] args)
        {
            IFactory factory = new CUnderGraduate();
            Leifeng student = factory.CreateLeiFeng();
            student.Sweep();
            student.Wash();
            student.BuyRice();

            Console.ReadLine();
        }
    }

    /// <summary>
    /// 所有工厂中公共执行的操作的类
    /// </summary>
    class Leifeng
    {
        public void Sweep()
        {
            Console.WriteLine("扫地");
        }
        public void Wash()
        {
            Console.WriteLine("洗衣");
        }
        public void BuyRice()
        {
            Console.WriteLine("买米");
        }
    }

    /// <summary>
    /// 创建工厂接口
    /// </summary>
    interface  IFactory
    {
        Leifeng CreateLeiFeng();
    }

    /// <summary>
    /// 工厂需要实例化的类
    /// </summary>
    class UnderGraduate : Leifeng
    {}

    /// <summary>
    /// 工厂需要实例化的类
    /// </summary>
    class Voluteers:Leifeng
    { }


    /// <summary>
    /// 工厂,用来实例化类
    /// </summary>
    class CUnderGraduate:IFactory
    {
        public Leifeng CreateLeiFeng()
        {
            return new UnderGraduate();
        }
    }

    /// <summary>
    /// 工厂,用来实例化类
    /// </summary>
    class CVoluteers : IFactory
    {
        public Leifeng CreateLeiFeng()
        {
            return new Voluteers();
        }
    }

}

 

(C#)工厂方法模式

标签:

原文地址:http://www.cnblogs.com/Firepad-magic/p/4704019.html

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