Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
        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);
        }