【多线程】Thread静态代理模式理解
Thread静态代理模式理解
代码示例:
/**
* @Description 静态代理模式
* @Author hzx
* @Date 2022-03-26
*/
public class StaticProxy {
public static void main(String[] args) {
You you = new You(); //你要结婚
WeddingCompany weddingCompany = new WeddingCompany(you); //代理对象,帮助你完成婚礼
weddingCompany.HappMarry();
//以下代码用于对比: Thread实现和静态代理
Runnable runnable = new Runnable() { //定义一个Runnable对象
@Override
public void run() {
System.out.println("【Runnable】 i love you");
}
};
Thread thread = new Thread(runnable); //代理对象
thread.start();
}
}
interface Marry {
void HappMarry();
}
/**
* 真实角色,你去结婚
*/
class You implements Marry {
@Override
public void HappMarry() {
System.out.println("【真实角色】举行婚礼仪式,超开心");
}
}
/**
* 代理角色,帮助你完成婚礼
*/
class WeddingCompany implements Marry {
private Marry target;
public WeddingCompany(Marry target) {
this.target = target;
}
@Override
public void HappMarry() {
before();
this.target.HappMarry();
after();
}
private void before() {
System.out.println("【代理角色】结婚之前,布置婚礼现场");
}
private void after() {
System.out.println("【代理角色】结婚之后,打扫婚礼现场");
}
}
执行结果:
【代理角色】结婚之前,布置婚礼现场
【真实角色】举行婚礼仪式,超开心
【代理角色】结婚之后,打扫婚礼现场
【Runnable】 i love you
静态代理模式总结:
- 1.真实对象和代理对象都要实现同一个接口;
- 2.代理对象要代理真实角色。
好处:
- 1.代理对象可以做很多真实对象做不了的事情;
- 2.真实对象专注做自己的事情。
【多线程】Thread静态代理模式理解的更多相关文章
- 2.1多线程(java学习笔记) java中多线程的实现(附静态代理模式)
一.多线程 首先我们要清楚程序.进程.线程的关系. 首先进程从属于程序,线程从属于进程. 程序指计算机执行操作或任务的指令集合,是一个静态的概念. 但我们实际运行程序时,并发程序因为相互制约,具有“执 ...
- java的线程、创建线程的 3 种方式、静态代理模式、Lambda表达式简化线程
0.介绍 线程:多个任务同时进行,看似多任务同时进行,但实际上一个时间点上我们大脑还是只在做一件事情.程序也是如此,除非多核cpu,不然一个cpu里,在一个时间点里还是只在做一件事,不过速度很快的切换 ...
- java 多线--静态代理模式
我们使用 java 多线程时,都需要通过线程代理对象来启动线程,常见的写法: new Thread(target).start(); 这在设计模式中叫静态代理模式,静态代理模式组成; 1.公共接口 2 ...
- 黑马程序员:Java基础总结----静态代理模式&动态代理
黑马程序员:Java基础总结 静态代理模式&动态代理 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 静态代理模式 public class Ts { ...
- Java模式—静态代理模式
静态代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问,提供“真实对象”的代表,在访问对象时引入一定程度的间接性,这种间接性可以附加多种用途. 代理模式的主要作用是为其他对象 ...
- JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式
/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person(&qu ...
- JAVA静态代理模式(从现实生活角度理解代码原理)
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问. 代理模式说白了就是"真实对象"的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途. 在 ...
- java静态代理模式
代理模式分为动态代理和静态代理. 静态代理简述: 1.为其他对象提供一种代理,以控制对这个对象的访问. 2.代理对象会起到中介的作用,可以增加些功能,也可以去掉某些功能. 静态代理: 代理和被代理对象 ...
- Java代理模式——静态代理模式
一:代理模式 代理模式的作用是:为其他对象提供一种代理以控制这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 二:代理模式设计 ...
随机推荐
- 攻防世界php_rce
php_rce 进入题目提示为ThinkPHP V5 遇到这种题我们一般去找一下框架的rce漏洞即可,搜索到这样一篇文章 https://www.freebuf.com/articles/web/28 ...
- MySQL索引如何优化?二十条铁则
索引的相信大家都听说过,但是真正会用的又有几人?平时工作中写SQL真的会考虑到这条SQL如何能够用上索引,如何能够提升执行效率? 前言 索引的相信大家都听说过,但是真正会用的又有几人?平时工作中写S ...
- Python的数据基础库Numpy怎样对数组进行排序
Numpy怎样对数组排序 Numpy给数组排序的三个方法: numpy.sort:返回排序后数组的拷贝 array.sort:原地排序数组而不是返回拷贝 numpy.argsort:间接排序,返回的是 ...
- 大数据学习之路又之从csv文件到sql文件的操作过程
根据前几天的测试,简单的做个总结 csv文件的字段说明: 1.将csv文件上传到虚拟机中 在SecureCRT中点击,创建目录,直接把文件从本地拖拽进去 我放在了/linmob/data的路径下,所以 ...
- java中设置准确的时间日期类的用法
5.日期Date相关类: 题目1: 设置准确的时间(jdk1.1以后Date的setHours不被推荐了,所以要用Calendar设置时间) import java.util.*;public cla ...
- vscode代码格式化快捷键及保存时自动格式化
一.实现vs code中代码格式化快捷键:[Shift]+[Alt]+ F 二.实现保存时自动代码格式化: 1)文件 ------.>[首选项]---------->[设置]: 2)搜索 ...
- Java中数组的定义与使用(代码+例子)
学习目标: 掌握一维数组的使用 学习内容: 1.一维数组的定义 数组(Array),是把具有 相同类型 的多个常量值 有序组织 起来的一种数据形式.这些按一定顺序排列的多个数据称为数组.而数组中的每一 ...
- webpack的安装 以及 问题 以及 作用
参考链接: https://blog.csdn.net/Rnger/article/details/81086938 https://blog.csdn.net/qq_38111015/art ...
- RENIX软件V6板卡速率设置——网络测试仪实操
本文主要介绍RENIX软件V6板卡速率设置相关操作.全文分为V6板卡介绍.如何配置端口两大部分.其中从添加和连接机箱.预约端口.配置端口为强制10M.配置端口为自协商100M.配置说明五个方面详细介绍 ...
- linux修改中文字符集
//修改系统配置 cd /etc/profile //末尾加如下代码 export LC_ALL="zh_CN.GBK"export LANG="zh_CN.GBK&qu ...