静态代理模式

63 篇文章 0 订阅
60 篇文章 0 订阅

静态代理模式

代理对象和真实对象都实现同一接口,代理对象要代理真实角色。
好处:
  1. 代理对象能帮助我们完成一些我们完不成的事。
  2. 真实对象只需要专注自己的事。

例如我们结婚,需要婚庆公司帮助我们完成。此时我就是真实对象,婚庆公司就是代理对象,它能帮助我们搭建舞台,主持婚礼等。而我们只需要专注与新娘结婚。

public class Demo06 {
    public static void main(String[] args) {
        //创建真实对象你
        You you = new You();
        //创建婚庆公司,把你交给公司完成婚礼
        new weddingCompany(you).happyMarry();
    }
}
interface Marry{
    void happyMarry();
}
//真实对象,你去结婚
class You implements Marry{

    @Override
    public void happyMarry() {
        System.out.println("结婚了,超快乐");
    }
}
//静态代理对象,帮助你完成结婚
class weddingCompany implements Marry{
    private Marry you;

    public weddingCompany(Marry you) {
        this.you = you;
    }

    @Override
    public void happyMarry() {
         //结婚前帮助你布置现场
          before();
          you.happyMarry();
          //结婚后,撤现场
          after();
    }
    public void before(){
        System.out.println("布置现场");
    }
    public void after(){
        System.out.println("撤现场");
    }
}

在java中通过实现Runnable接口开启多线程就是一个静待代理。因为Thread类也实现了Runnable接口。

public class Demo07 {
    public static void main(String[] args) {
        //这是一个真实对象
        Demo08 demo08 = new Demo08();
        //创建一个代理对象,并将真实对象交给代理对象
        Thread thread = new Thread(demo08);
        //通过代理对象去完成任务
        thread.start();
    }
}
class Demo08 implements Runnable{
    @Override
    public void run() {
        System.out.println("这是一个真实对象");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值