Thread类-线程静态代理实现

本文通过婚礼筹备的例子介绍了静态代理模式,真实对象(如新人)和代理对象(婚庆公司)都实现同一接口。代理对象负责额外的准备工作和后续工作,使真实对象能专注于核心任务。类比到线程,Thread类作为代理实现Runnable接口,处理线程相关事务,自定义线程类只需关注run()方法内的逻辑。这种代理模式让代码职责更明确,增强了灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说一个小例子:
你要准备结婚,举办婚礼,需要找婚庆公司,因为不可能一场婚礼的所有事情都由你来做:
婚庆公司布置场景,请司仪,写请帖…
而你,作为新人,只需要去参加婚礼,说表白词,誓言…
婚庆公司是代理对象,你是真实对象,婚庆公司代理你

话不多说,上代码

package com.bes.mybatis_plus.Test1;

/**
 * 静态代理模式总结:
 * 真是对象和代理对象都要实现同一个接口
 * 代理对象要代理真实角色(包含继承同一个接口的真实对象target)
 */

/**
 * 好处: 代理对象可以做很多真实对象做不了的事
 * 真实对象专注做自己的事情
 */
public class StaticProxy {
    public static void main(String[] args) {
        You you = new You();

        new Thread(()->{
            System.out.println("创建线程的lambda写法");
        }).start();
        //老方法
//        WeddingCompany weddingCompany = new WeddingCompany(you);
//        weddingCompany.HappyMarry();
        //lambda写法
        new WeddingCompany(you).HappyMarry();
        /**
         * 线程就和婚庆公司一样,静态代理模式
         * 婚庆公司WeddingCompany实现Marry接口,包含target对象,此处target对象是也实现Marry接口的You类
         * You可以做自己的事,其他事婚庆公司WeddingCompany来做
         * Thread类实现Runnable接口,包含target对象,此处arget对象事,你自定义的类(也实现实现Runnable接口)
         * Thread类关注线程的事,自定义线程做其他事
         */

    }
}

interface Marry{
    void HappyMarry();
}

class You implements  Marry{
    @Override
    public void HappyMarry() {
        System.out.println("你要结婚了~新郎不是我~哦 太多的难过,我该对谁说");
    }
}

class WeddingCompany implements Marry{
	//代理的真实对象
    private Marry target;
	//构造函数
    WeddingCompany(Marry target){
        this.target = target;
    }
    @Override
    public void HappyMarry() {
        before();
        this.target.HappyMarry();
        after();
    }

    private void before() {
        System.out.println("婚庆公司婚前准备");
    }

    private void after() {
        System.out.println("婚庆公司婚后打扫现场");
    }
}

婚庆公司和你都实现同一个接口-Marry接口,婚庆公司代理真实对象(实现Marry接口的类),这样只要实现Marry接口,都可以交给婚庆公司代理,而你可以专注做自己的事情,各做各的

而线程也是一样:
Thread类实现Runnable接口,你自定义的线程类也实现Runnable接口。
Thread类去做线程的事,你自定义的线程类,在run()方法内写逻辑代码即可。
Thread类代理你自定义的线程类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值