代理模式:代理接活,被代理人干活。主要是用了java的多态特性,定义一个借口,
让代理类和被代理类都实现该接口,关键在于在代理类的构造方法中引用被代理类
的构造方法。
接口:
public interface Start {
public void sing();
public void display();
}
代理类:
public class Start_Chou_Proxy implements Start {
public Start start;
public Start_Chou_Proxy(){
start = new Start_Chou();//关键是持有被代理类的构造。一个代理可以代理多个类,定义多个代理类的构造就行。
}
public Start_Chou_Proxy(Start start){
this.start = start;
}
@Override
public void sing() {
// TODO Auto-generated method stub
start.sing();
}
@Override
public void display() {
// TODO Auto-generated method stub
start.display();
}
}
被代理类:
public class Start_Chou implements Start {
@Override
public void sing() {
// TODO Auto-generated method stub
System.out.println("明星唱歌!!!");
}
@Override
public void display() {
// TODO Auto-generated method stub
System.out.println("明星演戲!!!");
}
}
代理模式实现方法测试:
public class Test {
public static void main(String[] args){
Start_Chou_Proxy start_Chou_Proxy = new Start_Chou_Proxy();
start_Chou_Proxy.sing();
start_Chou_Proxy.display();
}
}
总结:代理模式主要使用了Java的多态,干活的是被代理类,代理类主要是接活,你让我
干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,
大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗(摘自《设计模式之禅》)。
让代理类和被代理类都实现该接口,关键在于在代理类的构造方法中引用被代理类
的构造方法。
接口:
public interface Start {
public void sing();
public void display();
}
代理类:
public class Start_Chou_Proxy implements Start {
public Start start;
public Start_Chou_Proxy(){
start = new Start_Chou();//关键是持有被代理类的构造。一个代理可以代理多个类,定义多个代理类的构造就行。
}
public Start_Chou_Proxy(Start start){
this.start = start;
}
@Override
public void sing() {
// TODO Auto-generated method stub
start.sing();
}
@Override
public void display() {
// TODO Auto-generated method stub
start.display();
}
}
被代理类:
public class Start_Chou implements Start {
@Override
public void sing() {
// TODO Auto-generated method stub
System.out.println("明星唱歌!!!");
}
@Override
public void display() {
// TODO Auto-generated method stub
System.out.println("明星演戲!!!");
}
}
代理模式实现方法测试:
public class Test {
public static void main(String[] args){
Start_Chou_Proxy start_Chou_Proxy = new Start_Chou_Proxy();
start_Chou_Proxy.sing();
start_Chou_Proxy.display();
}
}
总结:代理模式主要使用了Java的多态,干活的是被代理类,代理类主要是接活,你让我
干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,
大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗(摘自《设计模式之禅》)。
Java代理模式详解
本文详细介绍了Java中的代理模式,通过具体实例展示了如何利用接口和多态特性实现代理模式。代理模式下,代理类负责接活并将任务转交给被代理类执行。
&spm=1001.2101.3001.5002&articleId=16335079&d=1&t=3&u=2c768caac4b145b0b174b41561ada0d4)
954

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



