工厂模式的又一个应用:商场收费系统(C#源代码)
2008-11-16 21:31
295 查看
From:http://blog.csdn.net/andylin02/archive/2008/11/14/3300686.aspx
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#源代码) | 旧一篇: 凡事预则立 不预则废
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;
}
};
}
相关文章推荐
- 工厂模式的又一个应用:商场收费系统(C#源代码)
- 策略模式应用之商场收费系统(C#源代码)
- 策略模式应用之商场收费系统(C#源代码)
- 发表一个自己C#写的email 初级系统源代码
- C#实训啊 各位哥哥姐姐帮帮我啊,做一个小型的学生管理系统……
- spring security 一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架
- 用c#和access数据库做一个会员管理系统,弱弱的发现者难道是个access的bug??
- c#中在DataGrid里创建一个弹出式窗口------可实现源代码
- 应用 FileInputStream类,从磁盘上读取一个Java程序,并将源代码显示在屏幕上
- C#打造一个开源webgis(三)地图服务系统
- android下判断一个应用app是否是系统rom集成的方法
- 用C#构建一个简单的采集系统之二—采集任务实时显示
- 分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
- C#综合应用,写一个英语单词类浏览练习软件
- 机房收费系统之【只允许一个MDI窗体 错误:426】
- 第一个(应用的)组件启动时,(系统)创建主进程(包名)+主线程,Application对象 (一个应用所有组件默认运行在同一个进程)
- C#实现winform下图片的上传预览保存以及在桌面应用系统的应用
- 一个三层架构源代码!(毕业设计"论文信息管理系统"阶段源代码)
- 自己做了一个C#桌面应用程序消费管理系统,功能感觉有点简陋,求点意见
- 关于一个银行系统的具体应用实现方案的讨论