策略模式

作者: Stephenwish | 来源:发表于2020-07-21 19:34 被阅读0次
    第一步,正常定义一个接口
    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 模式很简单,但是要从别人的代码里读出是策略模式要有经验的,因为别人的接口实现可能有多个

    相关文章

      网友评论

        本文标题:策略模式

        本文链接:https://www.haomeiwen.com/subject/veywkktx.html