您的位置:首页 > 编程语言 > C#

工厂模式的又一个应用:商场收费系统(C#源代码)

2008-11-16 21:31 295 查看
From:http://blog.csdn.net/andylin02/archive/2008/11/14/3300686.aspx

新一篇: 策略模式应用之商场收费系统(C#源代码) | 旧一篇: 凡事预则立 不预则废

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}

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;
}

};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐