//*Sample主要流程為: //一家飲料店提供幾種飲料,每一種飲料除了價格和吸管不同 //其它的出餐手續都相同, //這時候可以使用一個飲料工廠的概念將飲料出餐不同的部分封裝進去 //由這個飲料工廠統一負責這些不同的邏輯 //而主要的邏輯只需要對"飲料"這種物件作處理即可 // //*定義一個建立物件的介面,但讓實作這個介面的類別來決定例項化哪個類別。 //工廠方法讓類別的實例化推遲到子類別中進行。 static void Main(string[] args) { var store = new BeverageStore(); Console.WriteLine("A 客人點了綠茶"); store.BeverageOrders("GreenTea"); Console.WriteLine("B 客人點了紅茶"); store.BeverageOrders("BlackTea"); Console.ReadLine(); }
public void SeedDB(DbVendingMachineContext db) { if (db.BeverageTypes.Any() == false) { var beverageType1 = new BeverageType { Name = "Pepsi", Cost = 10, Image = new byte[10] }; db.BeverageTypes.Add(beverageType1); var beverageType2 = new BeverageType { Name = "Cola", Cost = 12, Image = new byte[10] }; db.BeverageTypes.Add(beverageType2); var beverageType3 = new BeverageType { Name = "Sprite", Cost = 7, Image = new byte[10] }; db.BeverageTypes.Add(beverageType3); var beverageStore1 = new BeverageStore { BeverageType = beverageType1, Quantity = 10 }; db.BeverageStores.Add(beverageStore1); var beverageStore2 = new BeverageStore { BeverageType = beverageType2, Quantity = 10 }; db.BeverageStores.Add(beverageStore2); var beverageStore3 = new BeverageStore { BeverageType = beverageType3, Quantity = 10 }; db.BeverageStores.Add(beverageStore3); var coinType1 = new CoinType { Nominal = 1 }; db.CoinTypes.Add(coinType1); var coinType2 = new CoinType { Nominal = 2 }; db.CoinTypes.Add(coinType2); var coinType5 = new CoinType { Nominal = 5 }; db.CoinTypes.Add(coinType5); var coinType10 = new CoinType { Nominal = 10 }; db.CoinTypes.Add(coinType10); var coinSettings1 = new CoinTypeSettings { CoinType = coinType1, Blocked = false }; db.CoinTypeSettings.Add(coinSettings1); var coinSettings2 = new CoinTypeSettings { CoinType = coinType2, Blocked = false }; db.CoinTypeSettings.Add(coinSettings2); var coinSettings5 = new CoinTypeSettings { CoinType = coinType5, Blocked = false }; db.CoinTypeSettings.Add(coinSettings5); var coinSettings10 = new CoinTypeSettings { CoinType = coinType10, Blocked = false }; db.CoinTypeSettings.Add(coinSettings10); var coinVault1 = new CoinVault { CoinType = coinType1, Count = 15 }; db.CoinVaults.Add(coinVault1); var coinVault2 = new CoinVault { CoinType = coinType2, Count = 15 }; db.CoinVaults.Add(coinVault2); var coinVault5 = new CoinVault { CoinType = coinType5, Count = 15 }; db.CoinVaults.Add(coinVault5); var coinVault10 = new CoinVault { CoinType = coinType10, Count = 15 }; db.CoinVaults.Add(coinVault10); db.SaveChanges(); System.Console.WriteLine("Data Seeded"); } }