栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

静态代理模式(多线程)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态代理模式(多线程)

  • 总结:

​ 真实对象和代理对象都要事先同一个接口

​ 代理对象要代理真实角色

  • 好处

    代理对象可以做很多真实对象做不了的事情

    真实对象专注做自己的事情

结婚例子:结婚对象(真实对象),婚庆公司(代理对象)

代码

package com.wang.Thread;
//静态代理模式
public class TestThread06 {
    public static void main(String[] args) {
        WeddingCompany weddingcompany= new WeddingCompany(new You());
        weddingcompany.HappyMarry();
        
    }
}
//Marry接口
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();
        target.HappyMarry();
        after();
    }

    void before(){
        System.out.println("布置现场");
    }
    void after(){
        System.out.println("收礼金");
    }
}

结果

布置现场
我要结婚啦!!
收礼金

婚庆公司的例子和多线程开启的对比

//Thread和继承Runnable接口的类都结继承Runnable
new Thread(()-> System.out.println("我爱你")).start();
//WeddingCompany和You全都继承Marry接口
new WeddingCompany(new You()).HappyMarry();

总结:Thread就相当于婚庆公司,做代理!!!()-> System.out.println(“海绵宝宝”)这句话是继承Runnable接口类的run()方法内容。用lamda表达式,因为有函数式接口Runnable。

例如

package com.wang.Thread;

public class Demo01 {
    public static void main(String[] args) {
        ThreadTest threadTest = new ThreadTest();
        //以下两种方法都可以实现run方法
        new Thread(threadTest).start();

        new Thread(()->System.out.println("海绵宝宝")).start();
    }
}

class ThreadTest implements Runnable{
    @Override
    public void run() {
        System.out.println("派大星");
    }
}

派大星
海绵宝宝
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号