设计模式研究

策略模式

2020-07-21  本文已影响0人  Stephenwish
第一步,正常定义一个接口
public interface DealStrategy {
    void dealMythod();
}
第二步,搞几个实现这个接口实例
//第一种实现方式(新建一个类)
public class DealWeChat implements DealStrategy{
    @Override
    public void dealMythod() {
        System.err.println("wechat");
    }
}

//第二种实现方式(新建一个类)
public class DealSina implements  DealStrategy{
    @Override
    public void dealMythod() {
        System.err.println("SinaDealWith");
    }
}


//第三种实现方式(新建一个类)
public class DealWeiBo implements  DealStrategy{
    @Override
    public void dealMythod() {
        System.err.println("weibo");
    }
}

\color{red}\bigstar 上面只是最简单接口实现,还没涉及到模式

第三步(核心),新建一个类通过构造器形式把接口包进来,然后新类间接包装原接口的方法作为自己的实现
public class DealContext {
    //引入接口类
    private DealStrategy dealStrategy;
   //以构造器方式实例化
    public DealContext(DealStrategy dealStrategy) {
  
        this.dealStrategy = dealStrategy;
    }
  //包装下引入类方法,作为自己方法
    public void doanything() {
        this.dealStrategy.dealMythod();
    }
}
第四步(使用),新建一个场景类使用
public class Client{
    public static void main(String[] args) {
       //实例一个具体策略
        DealStrategy  myStrategy=new DealSina();
      //实例化一个包了具体策略类的类
        DealContext context=new  DealContext(myStrategy);
      //再用包了具体策略类做事情
        context.doanything();
      
    }
}

\color{blue}\bigstar 模式很简单,但是要从别人的代码里读出是策略模式要有经验的,因为别人的接口实现可能有多个

上一篇下一篇

猜你喜欢

热点阅读