zoukankan      html  css  js  c++  java
  • 步步为营-08-设计模式-简单工厂

    一以贯之 :把子类看作父类,统一看待

    假设用户输入一个电脑品牌,判断该品牌是否存在

    1 定义一个抽象"电脑类"

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ComputerBand
    {
     public abstract class Computer
        {
          public abstract void SayHi();
        }
    }
    Computer

    2 定义两个子类(宏碁和戴尔)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ComputerBand
    {
        class Arce:Computer
        {
            public override void SayHi()
            {
                Console.WriteLine("我是宏碁");
            }
        }
    }
    Arce
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ComputerBand
    {
        class Dell:Computer
    
        {
            public override void SayHi()
            {
                Console.WriteLine("我是戴尔!");
            }
        }
    }
    Dell

    3 关键来了,定义一个工厂类,返回值为父类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ComputerBand
    {
       public class Factory
        {
          public static Computer GetComputer(string brand)
           {
               Computer cp = null;
               switch (brand)
               {
                   case "arce":
                       cp = new Arce();
                       break;
                   case "Dell":
                        cp = new Dell();
                       break;               
                   default:
                       break;
               }
               return cp;
           }
        }
    }
    Factory

    4 看看如何调用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ComputerBand
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入要查询品牌!");
                string brand = Console.ReadLine();
                Computer cp = Factory.GetComputer(brand);
                if (cp != null)
                {
                    cp.SayHi();
                }
                else {
                    Console.WriteLine( "输入的电脑品牌不存啊!");
                }
                Console.Read();
            }
        }
    }
    main

    运行效果

  • 相关阅读:
    Linux下CPU利用率和负载的关系
    Linux系统中的load average(平均负载/运行队列)
    性能测试分析及调优准备
    解读Loadrunner网页细分图(Web Page Diagnostics)
    LR性能测试分析流程
    【转】多数据源
    【转】BAT启动执行JAVA JAR文件中的MAIN方法的两种方式
    【转】java.net.SocketException
    [webservices]怎样用SoapUI测试接口
    【转】了解webservice
  • 原文地址:https://www.cnblogs.com/YK2012/p/6707839.html
Copyright © 2011-2022 走看看