策略模式
1 策略模式
1〉建立业务的抽象类;
2〉各业务类继承抽象类,覆盖抽象方法;
3〉建立策略类,根据传入的不同业务,生成不同的业务类对象
4〉客户端生成策略,调用策略方法;
1〉建立业务的抽象类;
class CashSuper
{
public class abstract Double accepCash(double money);
}
2〉各业务类继承抽象类,覆盖抽象方法;
class normal:CashSuper
{
public override double accepCash(double money)
{
return money;
}
class rebate:CashSuper
{
public double rebateMoney=0;
public double cashRebate(string money)
{
this.rebateMoney=money;
}
public override double accepCash(double money)
{
double result=0
result=money * rebateMoney;
}
}
}
3〉建立策略类,根据传入的不同业务,生成不同的业务类对象
class CashContext
{
CashSuper cs=null;
public CashContext(string selecttype)
{
switch(selecttype)
{
case"normal":
{
cs=new CashNormal();
break;
}
case"0.7":
{
cs=new CashRebate("0.7);
break;
}
}
}
public double Result(double money)
{
cs.accepCash(money);
}
}
4〉客户端生成策略,调用策略方法;
CashContext cc=new CashContext(this.drplist.SelectItem.Text)
cc.Result(Convert.ToDouble(this.txtNum.text)* Convert.ToDouble(this.txtPrices.Text)));