策略者模式

namespace Strategy2
{
//策略这模式
interface Iface//
{
double AcceptSuper(double money);//价钱
}
class CashNormal : Iface//
{
public double AcceptSuper(double money)
{
return money;
}
}
class CashRebate : Iface//打折
{
double rebate;
public CashRebate(string _rebate)
{
rebate = double.Parse(_rebate) ;
}
public double AcceptSuper(double money)
{
return money * rebate;
}
}
class CashReturn : Iface//满减
{
double moneyAll;
double moneyreturn;
public CashReturn(string _moneyAll,string _moneyreturn)
{
//
moneyAll = double.Parse(_moneyAll);
moneyreturn = double.Parse(_moneyreturn);
}
public double AcceptSuper(double money)
{
double resulr=money;
if (money>=moneyAll)
{
resulr = money - Math.Floor(money / moneyAll) * moneyreturn;
}
return resulr;
}
}
class Context//正常
{
Iface iface;
public Context(Iface _iface)
{
iface = _iface;
}
public double GetResult(double money)
{
return iface.AcceptSuper(money);
}
}
class Program
{
static void Main(string[] args)
{
#region
Context ct =null;
string s = Console.ReadLine();
switch (s)
{
case “1”?/正常
ct = new Context(new CashNormal());
break;
case “2”?/满减
ct = new Context(new CashReturn(“300”,“100”));
break;
case “3”?/八折
ct = new Context(new CashRebate(“0.8”));
break;
}
Console.WriteLine(“请输入金额”);
double d = double.Parse(Console.ReadLine());
Console.WriteLine(“收费” + ct.GetResult(d));
#endregion

        Console.ReadKey();
    }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值