首页 > Windows开发 > 详细

(C#)工厂方法模式

时间:2015-08-05 11:57:34      阅读:258      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!