private void button1_Click(object sender, EventArgs e) { double UnitPrice = double.Parse(textBox1.Text); double Quantity = double.Parse(textBox2.Text); string CalculateMethod = comboBox1.SelectedItem.ToString(); CashSuper cs = CashFactory.CreateCashFactory(CalculateMethod); double TotalPrice = cs.AcceptCash(UnitPrice * Quantity); string FinalResult; FinalResult = String.Format("Unit Price = {0}, Quanity = {1}, Calculate Method = {2}, Total Price = {3}" , UnitPrice , Quantity , CalculateMethod , TotalPrice); richTextBox1.AppendText(FinalResult); richTextBox1.AppendText("\n"); }
public CashContext(string acceptStrategy) { //所有收费模式均继承自CashSuper类,重写抽象方法:acceptCash switch (acceptStrategy) { case "正常收费": cs = new CashNormal(); break; case "满300返100": cs = new CashReturn("300", "100"); break; case "打八折": cs = new CashRebate("8"); break; case "打七折": cs = new CashRebate("7"); break; case "打五折": cs = new CashRebate("5"); break; } }
public static CashSuper CreateCashFactory(string CalculateString) { CashSuper CashSuperBuffer = null; switch (CalculateString) { case "Normal": CashSuperBuffer = new CashNormal(); break; case "10% off": CashOFF co = new CashOFF("0.9"); CashSuperBuffer = co; break; case "20% off": CashOFF co1 = new CashOFF("0.8"); CashSuperBuffer = co1; break; } return(CashSuperBuffer); }