溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

50.C#--用抽象方法實現(xiàn)簡單工廠設計模式

發(fā)布時間:2020-06-12 04:33:51 來源:網(wǎng)絡 閱讀:294 作者:初禾 欄目:編程語言

static void Main(string[] args)
{
//用抽象類實現(xiàn)一個簡單的工廠設計模式
//根據(jù)用戶的輸入,去判斷生產(chǎn)哪種品牌的筆記本
Console.WriteLine("請輸入你想要生產(chǎn)的筆記本品牌");
string brand = Console.ReadLine();
//將輸入的值代入靜態(tài)方法判斷要生產(chǎn)哪種筆記本,然后賦值給父類
NoteBook nb = GetNoteBook(brand);
//根據(jù)輸入判斷的結果,調用哪個類的方法,輸出生產(chǎn)筆記本打招呼結果
nb.SayHello();
Console.ReadKey();

    }

    //簡單工廠最核心部分,根據(jù)用戶輸入,創(chuàng)建對象賦值給父類
   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;
    }

    //因為一開始我們并不知道用戶想生產(chǎn)什么樣的筆記本,所以我們用抽象類去實現(xiàn)
    //注意:父類方法有意義,虛方法.
    //當父類中的方法不知道如何去實現(xiàn)的時候,可以考慮將父類寫成抽象類,將方法寫成抽象方法.
    public abstract class NoteBook
    {
        public abstract void SayHello();
    }
    public class Lenovo : NoteBook
    {
        public override void SayHello()
        {
            Console.WriteLine("我是聯(lián)想筆記本");
        }
    }
    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問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI