b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器模式举例_lua解释器交互模式_动态编译与解释器模式(13)

电脑杂谈  发布时间:2017-02-22 17:29:35  来源:网络整理
//第三个具体处理者,处理>=0但小于10的public class Handler3 implements Handler {    private Handler next;    @Override    public int handleRequest(int n) {        if(n<=Integer.MAX_VALUE) return n;        else{            if(next==null)                throw new NullPointerException("next 不能为空");            return next.handleRequest(n);        }    }    @Override    public void setNextHandler(Handler next) {        this.next = next;    }}

使用:

public class TestUse {    public static void main(String args[]){        Handler h1,h2,h3;        h1 = new Handler1();        h2 = new Handler2();        h3 = new Handler3();        h1.setNextHandler(h2);        h2.setNextHandler(h3);        System.out.println(h1.handleRequest(-1));        System.out.println(h1.handleRequest(5));        System.out.println(h1.handleRequest(9999));    }}

此处责任链中的具体处理者的顺序是不能重设的,否则可能会引发错误,但更多的情况是完全可以随意更改他们的位置的,就上例中,只要把if中的条件重新设置(各自独立,不相互依赖),就可以了。

我们写java web程序的时候,通常会编写一些过滤器(Filter),然后配置到web.xml中,这其实就是责任链模式的一种实践。而使用Log4j记录日志,配置级别的时候,也同样用到了责任链模式。

我们使用责任链模式的时候,不一定非得某一处理者处理后就得终止请求的传递,如果有其他需求,我们依然可以继续传递这个请求到下一个具体的处理者。

7、命令模式(Command Pattern)

别名:动作,事物(Another Name:Action,Transaction)

Encapsulate a request as an object,thereby letting you parameterize clients with different reauests,queue or log requests,and support undoable operations.

将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

何时使用:

程序需要在不同的时刻指定、排列和执行请求。 程序需要提供撤销操作。 程序需要支持宏操作。

优点:

在命令模式中,请求者(Invoker)不直接与接受者(Receiver)交互,及请求者(Invoker)不包含接受者(Receiver)的引用,因此彻底消除了彼此间的耦合。 命令模式满足“开-闭原则”。如果增加新的具体命令和该命令的接受者,不必修改调用者的代码,调用者就可以使用新的命令对象;反之,如果增加新的调用者,不必修改现有具体命令和接收者,新增加的调用者就可以使用已有的具体命令。 由于请求者的请求被封装到具体的命令中,那么就可以将具体命令保存到持久化的媒介中,在需要的时候,重新执行这个具体命令。因此,使用命令模式可以记录日志。 使用命令模式可以对请求者的“请求”进行排队。每个请求都各自对应一个具体命令,因此可以按一定顺序执行这些具体命令。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33893-13.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 林钰杰
      林钰杰

      甲午海战前

      • 王丽娟
        王丽娟

        可见我们今天的科技现实

    • 宋抗抗
      宋抗抗

      这个只有对的方向才是最好的不是吗

    热点图片
    拼命载入中...