设计模式之代理模式 (Proxy Pattern)

本文详细介绍了Java中的代理模式,通过具体实例展示了如何利用接口和多态特性实现代理模式。代理模式下,代理类负责接活并将任务转交给被代理类执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        代理模式:代理接活,被代理人干活。主要是用了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的多态,干活的是被代理类,代理类主要是接活,你让我
干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,
大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗(摘自《设计模式之禅》)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值