代理模式

 

代理模式(Proxy Pattern) :给某一个对象提供一个代 理,并由代理对象控制对原对象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一种对象结构型模式。

 

代理模式包含三个角色:

  抽象主题角色(Subject):通过接口或抽象类声明真实角色实现的业务方法。

  代理主题角色(Proxy):实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。

  真实主题角色(RealSubject):实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。

 

基本代码实现:

1、接口类:

public interface ISubject {
    void Method();
    void Function();
}

2、真实主题角色

public class RealSubject implements ISubject{
    @Override
    public void Method() {
        System.out.println("真实实现方法。");
    }

    @Override
    public void Function() {
        System.out.println("真实实现功能。");
    }
}

3、代理主题角色(实现与真实类相同的接口,实际调用真实类的方法)

public class ProxySubject implements ISubject {

    public RealSubject real;

    public ProxySubject() {
        real = new RealSubject();
    }

    @Override
    public void Method() {
        real.Method();
    }

    @Override
    public void Function() {
        real.Function();
    }
}

4、测试方法

public class ProxyTest {
    public static void main(String[] args) {
        //实例化代理
        ISubject subject = new ProxySubject();
        //通过代理调用具体功能
        subject.Method();
        subject.Function();
    }
}

运行结果:

  

 

转载于:https://www.cnblogs.com/format-ch/p/6925060.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值