代理模式
1.代理模式的作用:代理模式主要为一个对象引用另外一个对象提供一种中介,简单的来说,有时候一个对象不想直接访问另外一个对象,这个时候就可以用代理来实现。
一般情况下代理模式需要三个角色
a.抽象角色:主要用来声明代理类和真实类的共同接口。代理类和真实类都需要实现该接口。
b.真实角色:也就是我们需要引用的那个类。
c.代理角色:代理角色内部包含对真实角色的引用,从而使客户端可以操作真实的对象,同时代理角色和真实角色拥有相同的接口以便任何时候都能替代真实对象。同时还可以附加另外的操作。
下面我们将以具体的代码来说明:
package com;
public abstract class Subject {
/**
* 如果一个类继承了抽象类,
* 这个类必须实现抽象类的所有方法
*/
//抽象方法
abstract public void request();
}
注意:这是一个抽象的类 ,下面编写代理的类
package com;
public class ProxySubject extends Subject{
RealSubject realSubject;
public void request(){
System.out.println("the programe is here");
if(realSubject==null){
realSubject=new RealSubject();
realSubject.request();
}
}
}
上面是一个代理的类,从这个类中,我们可以看出,代理的类实现了对真正类的引用
public class RealSubject extends Subject {
public void request(){
System.out.println("Real subject is here");
}
}
上面是一个真正引用的类。
下面编写一个客户端,来调用代理的类,实现对真正的类的操作
public class Client {
public static void main(String args[]){
Subject sub=new ProxySubject();
sub.request();
}
}
上面就是一个简单的代理模式。这是java设计模式中的一个例子,上面只是我对代理模式的理解
分享到:
相关推荐
代理模式(Proxy) 定义: 为其他对象提供一种代理以控制对这个对象的访问 结构: 由三部分组成 1.RealSubject(真实对象): 真正会调用到的对象 2.Proxy(代理对象): 代理真实对象的地方 3.Subject(共同点): 代理对象...
JAVA设计模式之代理模式实例
代理模式.ppt代理模式.ppt代理模式.ppt
本程序是一个代理模式的小例子。程序比较简单。
设计模式-代理模式(讲解及其实现代码)
深信服网闸代理模式配置教程
//代理模式内部引用了真实角色 public void requst() { this.preRequest(); //在真实角色操作之前所附加的操作 if(null == realsubject) { realsubject = new ReallSubject(); } realsubject.requst(); // ...
设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式
代理模式代理模式代理模式
自己总结的代理模式和Java中的动态代理模式,有源码
代理模式: 为其他对象提供一种代理以控制对这个对象的访问。 代理模式的主要作用是,用来控制真实对象的访问权限,也就是完全对外隐藏真实对象。以及在调用真实对象时,代理还可以额外的处理另外的事。 比如下面...
代理模式的小demo
自己写的一个代理模式的示例,供大家参考 自己写的一个代理模式的示例,供大家参考 自己写的一个代理模式的示例,供大家参考
用java实现代理模式,使用房屋中介的现实例子进行代理模式的说明
Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)
该资源提供了三种代理模式的使用代码,其中包含每种模式的jar包、具体代码、Demo测试类,详细的注释帮助你来理解。
设计模式C++学习之代理模式(Proxy)
.net实现设计模式之代理模式