代理模式(一)

所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。
为什么需要代理模式呢?
因为在一些情况下,一个客户不能够或者不想直接引用一个对象,而代理对象
可以在客户端和目标对象之间起到中介的对用。

我们熟悉的Windows快捷方式就是代理模式的一个简单的例子。

下面我们给出代理模式的简单代码:

1. 首先,构造一个抽象主题类

package dp.proxy.simple;

abstract public class Subject {
abstract public void request();
}


2. 接着,继承该抽象主题类,我们构建一个真实主题类

package dp.proxy.simple;

public class RealSubject extends Subject {
public RealSubject() {

}

public void request() {
System.out.println("From real subject.");
}
}


3. 构造代理主题角色

package dp.proxy.simple;

public class ProxySubject extends Subject {
private RealSubject realSubject;

public ProxySubject() {

}

public void request() {
preRequest();

if (realSubject == null) {
realSubject = new RealSubject();
}

realSubject.request();

postRequest();
}

private void preRequest() {
// something you want to do before requesting
}

private void postRequest() {
// something you want to do after requesting
}
}


4. 客户端测试代码

package dp.proxy.simple;

public class Client {
private static Subject subject;

static public void main(String[] args) {
subject = new ProxySubject();
subject.request();
subject.request();
}
}


5. 运行结果
From real subject.
From real subject.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值