Java设计模式之:静态代理
  TEZNKK3IfmPf 2023年11月12日 20 0

一、简介

代理:代理对象主要用来拦截被代理对象的访问

  1. 代理对象可以理解为明星的经纪人,被代理对象可以理解为某个明星
  2. 代理对象要持有真实业务对象,即在代理类中创建被代理类的对象
  3. 代理对象和被代理对象,具备相同的行为方法. 实现同一个接口
  4. 代理对象拦截被代理对象的访问,可以修改访问的参数 返回值 甚至拦截访问

二、代码

1、启动类

public class StaticProxy {
     
       
    public static void main(String[] args) {
     
       
        new WeddingCompany(new You()).happyMarry();
    }
}

2、定义接口

interface Marry {
     
       
    void happyMarry();
}

3、真实角色

// 真实角色
class You implements Marry {
     
       

    @Override
    public void happyMarry() {
     
       
        System.out.println("我本人结婚了");
    }
}

4、代理角色

//代理角色
 class WeddingCompany implements Marry {
     
       
    // 真实角色对象
    private Marry target;

    public WeddingCompany(Marry target) {
     
       
        this.target = target;
    }

    @Override
    public void happyMarry() {
     
       
        ready();
        this.target.happyMarry();
        after();
    }

    private void ready() {
     
       
        System.out.println("婚前布置");
    }

    private void after() {
     
       
        System.out.println("婚后收拾");
    }
}

三、完整代码

public class StaticProxy {
     
       
    public static void main筛选出        (String[] args) {
     
       
        new WeddingCompany(new You()).happyMarry();
    }
}

interface Marry {
     
       
    void happyMarry();
}

// 真实角色
class You implements Marry {
     
       

    @Override
    public void happyMarry() {
     
       
        System.out.println("我本人结婚了");
    }
}


//代理角色
 class WeddingCompany implements Marry {
     
       
    // 真实角色对象
    private Marry target;

    public WeddingCompany(Marry target) {
     
       
        this.target = target;
    }

    @Override
    public void happyMarry() {
     
       
        ready();
        this.target.happyMarry();
        after();
    }

    private void ready() {
     
       
        System.out.println("婚前布置");
    }

    private void after() {
     
       
        System.out.println("婚后收拾");
    }
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   25天前   51   0   0 java
  TEZNKK3IfmPf   2024年05月31日   55   0   0 java
TEZNKK3IfmPf