温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

50.C#--用抽象方法实现简单工厂设计模式

发布时间:2020-06-12 04:33:51 来源:网络 阅读:278 作者:初禾 栏目:编程语言

static void Main(string[] args)
{
//用抽象类实现一个简单的工厂设计模式
//根据用户的输入,去判断生产哪种品牌的笔记本
Console.WriteLine("请输入你想要生产的笔记本品牌");
string brand = Console.ReadLine();
//将输入的值代入静态方法判断要生产哪种笔记本,然后赋值给父类
NoteBook nb = GetNoteBook(brand);
//根据输入判断的结果,调用哪个类的方法,输出生产笔记本打招呼结果
nb.SayHello();
Console.ReadKey();

    }

    //简单工厂最核心部分,根据用户输入,创建对象赋值给父类
   public static NoteBook GetNoteBook(string brand)
    {
        NoteBook nb= null;
        switch (brand)
        {
            case "Lenovo":nb = new Lenovo();
                break;
            case "ACER":nb = new Acer();
                break;
            case "Dell":nb = new Dell();
                break;
            case "ASUS":nb = new ASUS();
                break;
        }
        return nb;
    }

    //因为一开始我们并不知道用户想生产什么样的笔记本,所以我们用抽象类去实现
    //注意:父类方法有意义,虚方法.
    //当父类中的方法不知道如何去实现的时候,可以考虑将父类写成抽象类,将方法写成抽象方法.
    public abstract class NoteBook
    {
        public abstract void SayHello();
    }
    public class Lenovo : NoteBook
    {
        public override void SayHello()
        {
            Console.WriteLine("我是联想笔记本");
        }
    }
    public class Acer : NoteBook
    {
        public override void SayHello()
        {
            Console.WriteLine("我是宏基笔记本");
        }
    }
    public class Dell : NoteBook
    {
        public override void SayHello()
        {
            Console.WriteLine("我是Dell笔记本");
        }
    }
    public class ASUS : NoteBook
    {
        public override void SayHello()
        {
            Console.WriteLine("我是华硕笔记本");
        }
    }
}
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI