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

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

电脑杂谈  发布时间:2017-02-22 17:29:35  来源:网络整理

控制台输出:

folder:rootfolder:javafile:info.javafolder:cfolder:c#file:info.txt

输出与我们预期想得到的迭代器是一样的(从某一个目录开始,先输出目录名,然后如果有目录,就递归进入下一级目录,如果没有目录,就输出文件列表)。

文件和目录(Composite和Leaf)实现了相同的接口,所以操作起来很方便,包括迭代。

19、代理模式(Proxy Pattern)

Provide a surrogate or placeholder for another object to control access to it.

为其它对象提供一种代理以控制对这个对象的访问。

何时使用:

程序可能不希望用户直接访问该对象,而是提供一个特殊的对象以控制对当前对象的访问。 如果一个对象(例如很大的图像)需要很长时间才能完成加载。 如果对象位于远程主机上,需要为用户提供访问该远程对象的能力。

优点:

代理模式可以屏蔽用户真正请求的对象,是用户程序和正在的对象解耦。 使用代理来担当那些创建耗时的对象的替身。

一个用户不想或者不能够直接引用一个对象(或者设计者不希望用户直接访问该对象),而代理对象可以在客户端和目标对象之间起到中介的作用。而且这个代理对象中,我们可以做更多的操作。

代理模式实现其实很简单。下面直接用代码演示其实现:

抽象对象:

//抽象对象public intece AbstractObject {    void method1();    int method2();    void method3();}

具体对象:

//具体对象public class TargetObject implements AbstractObject {    @Override    public void method1() {        System.out.println("具体对象的方法1");    }    @Override    public int method2() {        System.out.println("具体对象的方法2");        return 0;    }    @Override    public void method3() {        System.out.println("具体对象的方法3");    }}

代理对象:

//代理对象public class ProxyObject implements AbstractObject {    AbstractObject object = new TargetObject();    @Override    public void method1() {        object.method1();    }    @Override    public int method2() {        return object.method2();    }    @Override    public void method3() {        System.out.println("调用目标对象前的操作");        object.method3();        System.out.println("调用目标对象后的操作");    }}


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

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

    • 朱玉楠
      朱玉楠

      美国佬在叙利亚被普京把了脸跑到南海来撒野

      • 济北王
        济北王

        首先是判明其意图和性质

    • 赵盼盼
      赵盼盼

      说明你开始走下坡路了

    • 郑添元
      郑添元

      是谁在搞

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