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最受欢迎插件推荐:点击查看
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    线程状态
    JVM的运行
    HBase与Protobuf
    HBase Java API
    HBase全分布式部署
    HBase 伪分布式搭建
    HBase架构
    mysql存储引擎中InnoDB与Myisam的区别及应用场景
    mysql5.6 主从配置
    Mongodb3.4安装
  • 原文地址:https://www.cnblogs.com/Firepad-magic/p/4704019.html
Copyright © 2011-2022 走看看