为了账号安全,请及时绑定邮箱和手机立即绑定
  • 责任链模式
    查看全部
  • 6666
    查看全部
  • 模式的秘密---责任链模式——责任链模式的应用 III Ps:不纯是因为他可以同时接受多个,而COR一次只可以接受一个。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---责任链模式——责任链模式的应用 II 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---责任链模式——责任链模式的应用 I Ps:抛出异常。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---责任链模式——什么是责任链模式 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---责任链模式——责任链模式案例 II 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 模式的秘密---责任链模式——责任链模式案例 I 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 课程大纲 1.什么是责任链模式? 击鼓传花的人是Handler Chain 闭合循环、敲鼓的杂役是Client(客户代码-找出一个人满足需求)。 花Request(请求、传递并处理的对象) 处理链-handler chain在权限内处理或者向上传递 client得到结果 什么是责任链模式 将接收者对象连成一条链,并在改链上传递请求,直到有一个接收者对象处理它。通过让更多对象有机会处理请求,避免了请求发送者和接收者之间的耦合。 2.如何实现责任链模式? 3.责任链模式如何解耦? 4责任链模式的应用、实例、问题?
    查看全部
  • 责任链模式的应用: 责任链模式在日常编码中可能不是经常用到的模式,但不管是前端还是后端工程师都可能天天接接触到责任链模式. JAVA中的异常处理机制是使用责任链模式 JavaScript的事件模式也是责任链模式 JAVAEE中的Filter经常可以在请求到达核心代码之前对它进行拦截并作出一些操作,当多个Filter存在的时候就共同构成了一个FilterChain,FilterChain不是一个存的责任链,责任链模式中只能有一个对象来处理请求,而FilterChain中可以有多个对象同时处理请求.
    查看全部
  • 开闭原则(OO中的一个基本原则):对扩展开放,对变更关闭,即是如果有一个业务变更,希望新增一个类,而非修改原有代码来满足业务需求. 责任链模式的执行性能:当有请求到达时会从责任链头部开始遍历整条责任链,直到有一个处理器处理了请求,或者是整个链条遍历完成,在这过程中性能的损耗体现在两个方面. 第一是时间,相对于单个Handler处理请求的时间而言,整个链条的遍历过程会消耗更多的时间. 第二是内存,使用责任链模式创建了大量对象来表示处理器对象,但仅仅使用了其中的少部分,剩余的大部分处理器都仅仅作为一个过客.
    查看全部
  • 在Sales与Manager之间加入一个Lead(销售小组)层级.它可以处理15%的折扣. 只需创建一个Lead类实现Handler接口,并在Handler工厂方法中重新构造责任链即可. Customer类依赖于PriceHander接口与PriceHandlerFactory工厂类,依然没有去依赖那些PriceHandler的实现类,因此说Customer与Handler之间是非常少的耦合. 将客户端看成一个模块,将Handler看成另外一个模块,两个模块之间的耦合是非常小的,它仅仅耦合于Handler模块对外提供的一个接口以及这个接口的工厂类. 解耦就是客户端代码和业务核心逻辑之间的关系问题,在责任链模式中,客户端代码并不知道责任链上的哪一个接收者会处理其请求,也就是说它与业务逻辑之间是松散的关联,客户端程序并不关注具体的Handler.因此可以轻易实现业务的变更.
    查看全部
  • 4.创建工厂方法为Handler构成责任链. //工厂方法 public class HandlerFactory{ //创建构造责任链方法,返回一个Handler给客户端使用. public static PriceHandler createPriceHandler(){ //创建所有Handler的实现类实例 PriceHandler sales=new Sales(); PriceHandler manger=new Manager(); PriceHandler vp=new VicePresident(); PriceHandler ceo=new CEO(); //使用Handler接口的setPriceHandler()方法进行责任链的构造,指定这些Handler的直接后继. sales.setSuccessor(manger); manger.setSuccessor(vp); vp.setSuccessor(ceo); //最后返回一个Handler去处理客户端的请求,此处返回一个销售者(责任链的第一个Handler). return sales; } } 5.创建测试类测试 Customer customer = new Customer(); //客户端请求Handler customer.setPriceHandler(HandlerFactory.createPriceHandler()); customer.requestDiscount(0.15); 那么控制台显示由经理处理了请求.客户端并不知道是谁处理了请求,他只得到了一个处理的结果.避免了客户端与Handler之间的耦合.
    查看全部
  • 例子: 1.创建Handler接口 public abstract class PriceHandler{ //直接后继 protected PriceHandler successor; public void setSuccessor(PriceHandler successor){ this.successor=successor; } //声明处理折扣的方法. public abstract void processDiscount(float discount); } 2.创建接口实现类 //销售,可以批准5%以内的折扣 public class Sales extends PriceHandler{ public void processDiscount(float discount){ if(discount<=0.05){ System.out.println("this.getClass().getName()"+批准了"+discount+"折扣"); }else{ //把请求交给后继Handler处理 successor.processDiscount(discount); } } } 其他manger(0.2)、vice president(0.3)、CEO(0.5)实现类也如此,但注意的是CEO的实现类中是最上一级了,因此没有后继,当不满足折扣需求时,则告诉客户不卖了 3.创建客户类 //客户,请求折扣 public class Customer{ //Handler接口的引用,代表请求教给哪个Handler处理 private PrivateHandler priceHandler; public void setPriceHandler(PriceHandler priceHandler){ this.priceHandler=priceHandler; } //客户请求折扣的方法 public void requestDiscount(float discount){ //调用Handler处理折扣的方法. priceHandler.processDiscount(discount); } } Customer类只关心折扣请求是否被处理了,而不关心最终是由谁处理的.
    查看全部
  • 责任链模式实现 责任链模式是在Client与Handler之间的请求处理关系. 步骤: 1.创建一个Handler接口(使用抽象),类中存在一个Handler的引用,该引用是为了用来指向当前Handler的后继Handler,生成set方法,并创建处理客户端请求的业务抽象方法. 2.创建Handler的实现类,实现抽象方法,如果当前Handler能够处理请求,则处理,否则交给其后继Handler处理,即调用后继引用的抽象方法. 3.创建客户类,该类中存在一个Handler接口的引用,代表把请求传递给哪个Handler处理.还要创建请求Handler的业务方法. 4.创建工厂方法为Handler构成责任链,方法内部实例化所有Handler的实现类,并指定这些Handler实现类的直接后继,方法返回责任链的第一个Handler去处理客户端的请求. 5.创建测试类,创建客户端实例,并为客户端中的Handler引用进行赋值,最后调用请求方法.
    查看全部

举报

0/150
提交
取消
课程须知
本课程的学习,需要小伙伴们具有面向对象基础知识及 Java 语言基础。如果您是新手,建议先移步 《Java入门第一季》和《Java入门第二季》
老师告诉你能学到什么?
1、什么是责任链模式,生活中常见的责任链模式场景 2、责任链模式的实现 3、责任链模式如何实现解耦 4、实际案例

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!