static void Main(string[] args) { Context context = null; Console.WriteLine("請輸入金額"); string strCash = Console.ReadLine(); Console.WriteLine("請輸入打折方式 1.正常 2.300折100 3.打8折"); CashEnum Mode = (CashEnum)Enum.Parse(typeof(CashEnum), Console.ReadLine()); context = new Context(Mode); //switch (strMode) //{ // case CashEnum.normal: // context = new Context(new CashNormal()); // break; // case CashEnum.refund: // context = new Context(new CashReturn("300", "100")); // break; // case CashEnum.discount: // context = new Context(new CashDiscount("0.8")); // break; // default: // break; //} //PayCash payCash = CashFactory.createCashAccept((CashEnum)Enum.Parse(typeof(CashEnum),Console.ReadLine())); double totalPrices = 0d; totalPrices = context.AcceptCash(Convert.ToDouble(strCash)); Console.WriteLine(totalPrices); Console.ReadLine(); }
public CashContext(CashEnum cashEnum) { switch (cashEnum) { case CashEnum.Normal: this._cash = new CashNormal(); break; case CashEnum.Return: this._cash = new CashReturn(300, 100); break; case CashEnum.Rebate: this._cash = new CashRebate(0.8); break; default: throw new ArgumentException("參數錯誤"); } }
//public Context(PayCash payCash, CashEnum Mode) public Context(CashEnum Mode) { //this.payCash = payCash; switch (Mode) { case CashEnum.normal: payCash = new CashNormal(); break; case CashEnum.refund: payCash = new CashReturn("300", "100"); break; case CashEnum.discount: payCash = new CashDiscount("0.8"); break; default: break; } }
public static PayCash createCashAccept(CashEnum cashEnum) { PayCash payCash = null; switch (cashEnum) { case CashEnum.normal: payCash = new CashNormal(); break; case CashEnum.refund: payCash = new CashReturn("300", "100"); break; case CashEnum.discount: payCash = new CashDiscount("0.8"); break; default: break; } return(payCash); }