设计模式——代理模式(静态)

戏子无情 提交于 2020-03-03 00:18:35

定义:

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

大白话就是,对象不想展示给客户端,或者不方便展示给客户端,那就通过一个类来间接的调用这个类。

代理类和实体类共同实现一个接口,代理类中保存一个对实体类的引用,提供一个实体类一样的接口,这样,代理类就可以替换实体类了。

结构:

subject:代理类和实体类共同的接口,

Proxy:实现subject接口,并且保存了对实体类的引用,也可以增加一些功能。

lrealSubject:实现subject接口,Proxy所代表的实体。

UML图:

eg:

生活中,我们代理的模式特别多,例如:我们经常找中介租房,亦或者是找铁哥们帮助自己送个东西给心爱的女生什么的。

中介租房:

Host:

//租房接口
public interface Host {
    public void rent();
}

HostWomen:

//房东实体
public class HostWoman implements Host {

    @Override
    public void rent() {
        System.out.println("房东租房");
    }

}

Proxy:

public class Proxy implements Host {

    HostWoman hw = new HostWoman();

    @Override
    public void rent() {
        hw.rent();
        System.out.println("中介打扫和收取中介费");
    }

Client:

//租客public class Client {
    public static void main(String[] args) {
        Proxy proxy = new Proxy();
        proxy.rent();
    }
}

以上就实现了一个很小的代理模式。

以上,仅仅是对静态代理的举例,动态代理等看到再来接着更。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!