代理设计模式

本文详细解析代理设计模式,通过外卖小哥与顾客案例阐述其概念,并演示了如何在Java中实现静态代理和动态代理。探讨了应用场景,包括安全代理、远程代理和延迟代理。

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

1.什么是代理设计模式

  1. 抽象的来讲:为其他对象提供一种代理去控制这个对象的访问

  2. 形象的来讲:就是把你需完成的事,让别人帮你完成,你只需要告诉别人你的需求

  3. 应用场景:安全代理 远程代理 延迟代理

  4. 分类:静态代理、动态代理(JDK自带具体体现在反射)

2.案例演示

典型案例:你点了外卖,外卖小哥帮你送到你家,你(被代理),外卖小哥(代理人)
基于Java接口部分实现的一个小测试

2.1测试类

public class MeituanTest {
    public static void main(String[] args) {
        //new Horseman里面就是多态(MtDaily daily = new Customer())
        Horseman horseman = new Horseman(new Customer());
        //最终输出是Customer的语句
        horseman.mtFood();
        //骑手配送
        Horseman.HorDo();
        //客户点评,开吃
        Customer.cusDo();

    }
}
interface MtDaily {
    void mtFood();
}

2.2客户类

class Customer implements MtDaily {
    final String name = "吕威";
    //吕威点了这些东西,它只需要等待就行了
    @Override
    public void mtFood() {
        System.out.println(name+"点了美团外卖");
    }

    //吕威后面要做的
    public static void cusDo(){
        System.out.println("答谢骑手5星好评");
        System.out.println("打开美团外卖开始吃");
    }
}

2.3骑手类

class Horseman implements MtDaily {

    private MtDaily daily;

    public Horseman(MtDaily daily){
        this.daily = daily;
    }


    //吕威这些需求由骑手完成
    @Override
    public void mtFood() {
        daily.mtFood();
    }

    public static void HorDo(){
        System.out.println("骑手已接单");
        System.out.println("骑手配送中"+'\n');
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值