为其他对象提供代理以控制对象的访问
抽象主题角色:可以是抽象类/接口,业务定义
具体主题角色:被代理类,继承/实现抽象主题角色,具体实现
代理角色:代理类,负责具体主题角色的应用,通过代理类执行具体主题的方法,这样可以不改变具体主题代码的情况下,扩展其他业务逻辑,这不正是AOP的思想吗? 事实上AOP使用的就是代理模式
职责清晰:真实角色只关心自己的业务,代理类完成扩展业务
扩展性强:具体角色的实现无论如何变化,被代理类不需要修改代码
动态代理:如AOP
普通代理的核心点就是主题角色创建对象的权限不对外提供,只能由代理类来完成,同时演示代理类可以在应用主题角色的方法时额外添加自己的需求,下面代码示例注意蓝色框高亮的代码
具体主题
具体主题
代理类
客户端调用
强制代理的核心点只要记住一点,抽象主题提供获取代理对象的抽象方法,主题角色中的方法只能通过在主题对象自己的代理对象访问,除此之外的任何方式都无权限访问
抽象主题
具体主题
代理类
客户端调用
版权声明:我们致力于保护作者版权,注重分享,被刊用文章【设计代理(设计模式之代理模式)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
