美文网首页
c#面向对象10--简单工厂设计模式

c#面向对象10--简单工厂设计模式

作者: Mona_Song | 来源:发表于2021-05-21 10:21 被阅读0次

    23种设计模式

    1.单例模式
    2.抽象工厂模式
    3.工厂方法模式
    4.建造者模式
    5.原型模式
    6.适配器模式
    7.装饰器模式
    8.代理模式
    9.外观模式
    10.桥接模式
    11.组合模式
    12.享元模式
    13.策略模式
    14.模板方法模式
    15.观察者模式
    16.迭代器模式
    17.责任链模式
    18.命令模式
    19.备忘录模式
    20.状态模式
    21.访问者模式
    22.中介者模式
    23.解释器模式
    设计模式简介 | 菜鸟教程 (runoob.com)

    简单工厂设计模式

    简单工厂设计模式
    • 例如,工厂生产四种类型的笔记本电脑,工厂不知道用户要哪个类型的笔记本电脑,这时给用户一个父类肯定不会出错,再根据用户的输入给他把用户需要的子类赋值给父类对象即可。
    • 核心:是工厂(工厂与用户的交互,根据用户的输入不同有不同的反馈)
    namespace 简单工厂设计模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("what kind of computer wouuld you want?");
                string brand = Console.ReadLine();
                computer cp = GetBrand(brand); ;
                cp.SayHello();
                Console.ReadKey();
    
    
            }
            public static computer GetBrand(string brand)//错误一:正确输入:string brand,,,我的输入:brand
            {
                computer cp = null;//Tips:这里要先声明computer cp=null对象和return cp,然后在这两条语句中间写,防止没有返回值的情况;
                switch (brand)
                {
                 
                    case "Acer": cp =new Acer();//错误二: 正确输入: case "Acer":,,,我的输入:case Acer:
                        break;
                    case "Lenovo": cp = new Lenovo();
                        break;
                    case "dell": cp = new dell();
                        break;
                }
                return cp;
            }
        }
        public abstract class computer
        {
            public abstract void SayHello();
        }
        public class Acer : computer
        {
            public override void SayHello()
            {
                Console.WriteLine("这里是Acer笔记本");
            }
        }
        public class Lenovo : computer
        {
            public override void SayHello()
            {
                Console.WriteLine("Lenovo");
            }
        }
        public class dell : computer
        {
            public override void SayHello()
            {
                Console.WriteLine("戴尔笔记本");
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:c#面向对象10--简单工厂设计模式

          本文链接:https://www.haomeiwen.com/subject/jwxndltx.html