关于责任链模式与模版模式的应用

模版模式是建立一个抽象类或接口,抽象类中有完成一个任务的步骤1,2,3,如果步骤1与3相同,只是步骤2的执行不同,那么可以建立子类继承抽象类或者不同子类接口实现接口,从而完成整个任务。

例如:

public interface A{

     void yunSuan(Object B)

}

public class ChildOneA implements A{

    @Override

    public void yunSuan(Object B){

        system.out.println("先洗菜");

    }

}


public class ChildTwoA implements A{

    @Override

    public void yunSuan(Object B){

        system.out.println("先买菜");

    }

}

public class ChildThreeA implements A{

    @Override

    public void yunSuan(Object B){

        system.out.println("先炒菜");

    }

}

上述模式就是模版模式。

那么模版模式与责任链模式又该怎么关联起来呢???

将实现类封装到map里。

public class Constants{

    public static Map <Integer,String> MAP=new HashMap<Integer,String>(){

         put(1,ChildOneA);

         put(2,ChildTwoA);

         put(3,ChildThreeA);

    }

}

在具体的业务代码里

public class BusinessCode{

      public void bussinessMethod(Integer type){

                 //获取子类的计费类名

                 String childService=Constants.MAP.get( type);

                 ((A)SpringContextUtil.getBean(childService)).yunSuan(Object B)

      }

}

其中,String childService=Constants.MAP.get( type);根据hashMap的原理,数组+链表的格式,责任链模式是将责任对象串成链来遍历,不是当前责任对象则找责任对象的下一级,hashMap链表的遍历和数组的key值查找过程相当于一个责任链的简版模式,可以认为责任链模式在模版模式的应用或模版模式在责任链模式的功能拓展。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值