您的位置:首页 > 其它

设计模式------策略模式

2017-01-12 15:56 197 查看
策略模式:

      又叫算法簇模式,算法也是一种策略;它定义了不同的算法族,并且 相互之间可以替换;

设计原则: 

      把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。

应用例子:

      超市收银员收钱,有的商品打折(5折、7折、8折、9折),有的满1000减200;后来过两天到了一个节日,增加活动:满500送100积分;

先上一个策略模式的实例框架:

public interface Strategy {  

    public void operate();   //每类活动都是一种可计算的策略。  

}  
创建具体的策略对象:

public class DaZheLei implements Strategy {
  

    public void operate() {  

        System.out.println("给商品打折!!!");  

    }  



public class ManJian implements Strategy {
  

    public void operate() {  

        System.out.println("满1000减200!!!");  

    }  

}  

若增加满500送100积分的活动,得在这加个ManSong类;

创建策略类将策略对象加载进去:

public class Context{

    Strategy strategy;

   
public Context(Strategy strategy){

       this.strategy=strategy;

    }  

    public void ContextOperate() {  

       
strategy.operate();  

    }  


客户端代码:

public class Manipulate{

    Context cc=null;

    switch(cbxType.SelectItem.ToString()){

      case "打折类":

         cc=new Context(new DaZhe());

         cc.ContextOperate();

         break;

      case "满1000减200":

         cc=new Context(new ManJian);

         cc.ContextOperate();

         break;

增加 case "满500送100积分":

 
       ... ...


 
      

    }

    ... ...

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