09 静态代理模式

package ThreadDemo;

// 静态代理模式,以结婚为例子
   // 对比线程
 /*
 1.代理对象 与真实对象 都实现 同一个接口
 2. 代理对象帮助真实对象完成工作
 3.好处:
       -代理对象帮助完成一些真实对象做不到的事情
       -真实对象可以更加专注完成处理自己的事情
  */

public class Test09_StaticProxy {
    public static void main(String[] args) {
        // 对比 静态代理 与 线程
        new Thread(new Runnable() {
             @Override
             public void run() {
                 System.out.println("结婚");
             }
         }).start();  // 线程也是静态代理!new Thread()是代理对象;new Runnable()是真实对象
        WeddingCompany weddingCompany= new WeddingCompany(new Somebody());  // 代理对象 与真实对象
    }

}

interface Marry{
    default void HappyMarry(){};
}

class Somebody implements Marry{
    @Override
    public void HappyMarry() {
        System.out.println("雇主很开心");
    }
}

class WeddingCompany implements Marry{
    Somebody target;

    public WeddingCompany(Somebody target) {
        this.target=target;    // 真实对象
        target.HappyMarry();
        HappyMarry();
    }

    @Override
    public void HappyMarry() {
        System.out.println("婚庆公司-->帮助雇主完成婚礼相关的工作");
    }
}
posted @   被占用的小海海  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示