代理,为其他对象提供了一种代理,以控制对该对象的访问。
其实,就是一种【间接】调用的关系。其他对象调用代理的方法,其实是代理中的被代理对象提供的方法。
实例如下:
package com.DesignPolicyLearn.Proxy;
/*
* author:Tammy Pi
* function:Person的抽象类
*/
public abstract class Person {
public abstract void speak();
}
真实的一个人:
package com.DesignPolicyLearn.Proxy;
/*
* author:Tammy Pi
* function:真实的Person
*/
public class RealPerson extends Person{
public void speak() {
System.out.println("俺说的话");
}
}
其实,代理就起到一个传话人的作用。代理其实是说的真实的人说的话。
package com.DesignPolicyLearn.Proxy;
/*
* author:Tammy Pi
* function:代理
*/
public class Proxy {
private Person realPerson;
public void speak() {
if(realPerson==null){
realPerson = new RealPerson();
}
realPerson.speak();
}
}
本文通过一个简单的例子介绍了代理模式的基本概念及实现方式。代理模式通过一个代理对象来控制对真实对象的访问,通常用于需要增加额外操作但又不想修改原始对象的情况。
1267

被折叠的 条评论
为什么被折叠?



