zoukankan      html  css  js  c++  java
  • (C#)工厂方法模式

    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();
            }
        }
    
    }
    点赞鼓励下,(づ ̄3 ̄)づ╭❤~

    作者:君莫笑
           出处:https://www.cnblogs.com/Firepad-magic/
           Unity最受欢迎插件推荐:点击查看
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Oracle分页查询
    Oracle表空间
    Oracle中DBA常用操作
    数据库的约束
    数据库设计的三范式
    数据类型的比较 有四种情况
    github快速上手
    3D正方体做法
    animation-声明关键帧
    轮播图样式
  • 原文地址:https://www.cnblogs.com/Firepad-magic/p/4704019.html
Copyright © 2011-2022 走看看