Java多线程-静态代理
Posted 小花皮猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程-静态代理相关的知识,希望对你有一定的参考价值。
什么是代理?
简单来说:代理(我帮你做一些事情)
例子
我结婚,我是一个真实的对象,婚庆公司帮我拍摄布置等,帮我代理(代理我),我和婚庆公司都去实现结婚接口即可,我只需要做我的是,其他事情婚庆公司(代理)帮我做即可
package com.wyh.thread;
/**
* @program: Thread
* @description: 静态代理
* @author: 魏一鹤
* @createDate: 2021-12-29 21:48
**/
//静态代理模式总结
//1 真实对象和代理对象都要实现同一个接口
//2 代理对象要代理真实的角色
//好处
// 1 代理对象可以做很多真实对象做不了的事情
// 2 真实对象只需要专注做自己的事情,其他的事情交给代理对象
public class StaticProxy
public static void main(String[] args)
//传统写法
//You you = new You();
//you.happyMarry();
//创建代理对象 需要一个真实的对象参数
// WeddingCompany weddingCompany=new WeddingCompany(new You());
//代理对象去调用结婚方法 还可以进行其他的操作
// weddingCompany.happyMarry();
//开启多线程
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();
//这就是调用真实对象了
this.target.happyMarry();
//结婚之后的方法
after();
private void after()
System.out.println("结婚之后");
private void before()
System.out.println("结婚之前");
静态代理的特点
1 真实对象和代理对象都要实现同一个接口
2 代理对象要代理真实的角色
静态代理的好处
1 代理对象可以做很多真实对象做不了的事情
2 真实对象只需要专注做自己的事情,其他的事情交给代理对象
以上是关于Java多线程-静态代理的主要内容,如果未能解决你的问题,请参考以下文章