多线程(3)静态代理模式

用结婚案例来说明静态代理模式

复制代码
package com.Thread.lesson01;

/**
 * 静态代理模式
 * 真实对象和代理对象都要实现同一个接口
 * 代理对象要代理真实角色
 * @author 长空扯淡
 */
public class StaticProxy {

    public static void main(String[] args) {
//        WeddingCompany weddingCompany = new WeddingCompany(new You());
//        weddingCompany.HappyMarry();

        You you = new You();
        new Thread( ()-> System.out.println("我爱你")).start();

        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() {
        before();
        System.out.println("结婚啦");
        after();
    }

    public void before(){
        System.out.println("结婚之前先给钱");
    }

    public void after(){
        System.out.println("结婚之后要烧钱");
    }
}
复制代码

 

posted @   长空扯淡  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示