- using System;
- namespace CustomSystem
- {
- enum CashType
- {
- cash_err,
- cash_normal,
- cash_return,
- cash_rebate,
- };
- //现金收取工厂
- class CCashFactory
- {
- public static CCashSuper CreateCashAccept(CashType typeCash)
- {
- CCashSuper objCash = null;
- switch (typeCash)
- {
- case CashType.cash_normal:
- objCash = new CCashNormal();
- break;
- case CashType.cash_return:
- objCash = new CCashRuturn(300.0, 100.0);
- break;
- case CashType.cash_rebate:
- objCash = new CCashRebate(0.8);
- break;
- default:
- objCash = null;
- break;
- }
- return objCash;
- }
- };
- public abstract class CCashSuper
- {
- public abstract double AcceptCash(double duMoney);
- };
- //返利收费
- class CCashRuturn: CCashSuper
- {
- public CCashRuturn(double duCondition, double duReturn)
- {
- this.m_duCondition = duCondition;
- this.m_duReturn = duReturn;
- }
- public override double AcceptCash(double duMoney)
- {
- if (duMoney >= this.m_duCondition)
- {
- duMoney -= this.m_duReturn;
- }
- return duMoney;
- }
- private double m_duCondition;
- private double m_duReturn;
- };
- //打折收费
- class CCashRebate:CCashSuper
- {
- public CCashRebate(double deRebate)
- {
- this.m_duRebate = deRebate;
- }
- public override double AcceptCash(double duMoney)
- {
- return this.m_duRebate * duMoney;
- }
- private double m_duRebate;
- };
- //正常收费
- class CCashNormal: CCashSuper
- {
- public override double AcceptCash(double duMoney)
- {
- return duMoney;
- }
- };
- }
工厂模式的又一个应用:商场收费系统(C#源代码)
最新推荐文章于 2025-05-04 14:28:46 发布