您好,登錄后才能下訂單哦!
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("我是華碩筆記本");
}
}
}
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。