栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简单静态代理实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单静态代理实现

定义: 代理模式为其他对象提供一种代理以控制对这个对象的访问.(或者说是在两个目标对象之间,添加一个中间对象(这个对象叫做代理对象)) 举个栗子:项目现在人手不够,项目经理需要招人,他去跟HR说,我需要一个什么什么样的人。然后HR去招人(HR就是一个代理人),进行前面的基础面试,到了差不多的时候,还需要项目经理自己面(代理角色要有真实角色的引用) 静态代理的要求: - 代理角色与真实角色实现相同的接口 - 代理角色持有真实角色的引用 - 代理行为
public class Test01StaticProxy {
    public static void main(String[] args) {
        Manager manager = new Manager();
        Hr hr = new Hr(manager);
        hr.addUser();
       // new Hr(new Manager()).addUser();
    }
}

//需求   真实角色和代理角色都需要实现的接口
interface User{
    void addUser();
}

//项目经理   //1)真实角色
class Manager implements User{

    @Override
    public void addUser() {
        System.out.println("技术面试。。。");

    }
}

//HR   代理角色
class Hr implements User{
    //2) 代理角色持有真实角色的引用   才可以调用真实角色的功能
    private Manager manager = null;

    public Hr() {
    }

    public Hr(Manager manager) {
        this.manager = manager;
    }

    @Override
    public void addUser() {
    	//代理角色去完成的工作
        System.out.println("发起面试信息。。");
        System.out.println("预约面试。。。");
        //需要真实角色去完成的工作
        manager.addUser();
        //后续的工作
        System.out.println("谈薪资.....");

    }
}

优点: 实现了客户端和目标对象之间解耦和 缺点: 代理类需要实现接口中的所有方法(需求), 如果接口中的方法改变了, 那么既需要修改目标类, 也需要修改代理类
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294894.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号