天天看点

Java设计模式之代理模式(Proxy)实践

        代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。

        想在访问一个类时做一些控制时,可以使用代理模式。

以下代码演示代理模式简单的实际运用:

定义一个接口People:

package com.ldl.cn.ProxyModel;

public interface People {
    void programming();
}
           

定义类JavaPeople实现People接口:

package com.ldl.cn.ProxyModel;

public class JavaPeople implements People{

    private String demo;
    
    public JavaPeople(String demo) {
        super();
        this.demo = demo;
    }

    @Override
    public void programming() {
        System.out.println("Programming "+demo);
    }
}
           

定义代理类:

package com.ldl.cn.ProxyModel;

public class ProxyJavaPeople implements People{

    private JavaPeople javapeople;
    private String demo;
    
    public ProxyJavaPeople(String demo) {
        super();
        this.demo = demo;
    }

    @Override
    public void programming() {
        if (javapeople == null) {
            javapeople = new JavaPeople(demo);
        }
        javapeople.programming();
    }
}
           

编写测试类:

package com.ldl.cn.ProxyModel;

public class TestProxyPattern {

    public static void main(String[] args) {
        People people = new ProxyJavaPeople("Java demo.");
        people.programming();
    }
}
           

运行结果:

Programming Java demo.