C#通過抽象工廠模式造車
可以用抽象工廠模式來造車。
車的品牌有很多,而且車的屬性也不少,比如車的類型、排量、門的數(shù)量,等等??梢蕴釤挸鲇嘘P車的一個抽象類:
public abstract class Car { public string Model { get; set; } public string Engine { get; set; } public string Transmission { get; set; } public string Body { get; set; } public int Doors { get; set; } public List<string> Accessores = new List<string>(); public abstract void ShowCarInfo(); }
既然是抽象工廠,提煉出一個造車的接口:
public interface ICarFactory { Car ProduceCar(); }
寫一個Car的派生類:
public class MyCar : Car { public MyCar() { Model = "型號001"; Engine = "發(fā)動機V"; Transmission = "排量1"; Body = "SUV"; Doors = 4; Accessores.Add("內(nèi)飾"); Accessores.Add("外飾"); } public override void ShowCarInfo() { Console.WriteLine(Model); Console.WriteLine(Engine); Console.WriteLine(Body); Console.WriteLine("門數(shù)量:" + Doors); Console.WriteLine("包括:"); foreach (var accessory in Accessores) { Console.WriteLine("\t{0}", accessory); } } }
MyCar需要一個對應的具體工廠來造車。寫一個具體工廠類,實現(xiàn)ICarFactory接口。
public class MyFactory : ICarFactory { public Car ProduceCar() { return new MyCar(); } }
在客戶端,如果要造車,就找具體工廠就可以了。
static void Main(string[] args) { ICarFactory carFactory = new MyFactory(); carFactory.ProduceCar().ShowCarInfo(); Console.ReadKey(); }
總結:
1、需要工廠生產(chǎn)對象的抽象類以及派生類
2、需要一個抽象工廠接口
3、通過抽象工廠造車,必須把所有的細節(jié)都設計在代表車的抽象類中,擴展性不好
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
c#利用webmail郵件系統(tǒng)發(fā)送郵件示例分享
在C#中發(fā)送郵件的方式有2種,一種是使用webmail方式進行發(fā)送,另外一種就是采用netmail發(fā)送的方式,這篇文章介紹了c#使用webmail方式發(fā)送郵件示例,大家參考使用吧2014-01-01C#模擬http 發(fā)送post或get請求的簡單實例
下面小編就為大家?guī)硪黄狢#模擬http 發(fā)送post或get請求的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06C#利用delegate實現(xiàn)Javascript的each方法
這篇文章主要為大家介紹了介紹了C#利用delegate實現(xiàn)Javascript的each方法,感興趣的朋友可以參考一下2016-01-01