0%

Java设计模式之代理模式

代理模式将对象使用者与对象用代理对象分开,代理类与具体执行的类实现同一个接口,调用者直接调用的是代理对象,代理对象再调用真正的实现。代理模式可以实现对目标对象的再次封装,添加其他操作(比如统计调用次数之类的),突破限制(调用者没权限访问目标对象,但可以访问代理对象). 接口

package com.pocketdigi.patterns.proxy;

public interface IPerson {
    public void say();
}



package com.pocketdigi.patterns.proxy;

public class PersonImp implements IPerson{
    String name;
    int age;
    public PersonImp(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    @Override
    public void say() {
        System.out.println("My name is "+name+", I'm "+age+" years old");
    }
}



package com.pocketdigi.patterns.proxy;

public class ProxyPerson implements IPerson {

    IPerson stu;
    public ProxyPerson(String name,int age)
    {
        stu=new PersonImp(name, age);
    }
    
    @Override
    public void say() {
        stu.say();
    }
}

调用:

        //代理模式
        ProxyPerson p=new ProxyPerson("zhang",20);
        p.say();