1、意图 动态给一个对象添加一些额外的职责。比如增加功能,装饰模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。 2、适用场景 (1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责; (2)当不能采用继承方式对系统进行扩展或者采用继承不利于系统的扩展和维护时,第一种 ...
分类:
其他好文 时间:
2021-07-28 21:33:40
阅读次数:
0
一、继承Thread类 重写run()方法 二、实现Runnable接口 实现run()方法 不能返回值、不能抛出异常 三、实现Callable接口 重写call()方法 返回值 抛异常 第三种方式需要借助FutureTask来使用:new Thread(new FutureTask(new MyC ...
分类:
编程语言 时间:
2021-07-26 16:48:30
阅读次数:
0
FutureTask(未来任务) 一、前情回顾(重要) 首先我们先回顾一下多线程创建的方式 直接继承Thread方式 实现Runnable 方式 实现Callable方式 线程池方式 这四种方式主要分为两类:没返回值的(1,2) 有返回值的(3,4) 没返回值的相信已经烂熟于心了。这次我们讲讲有返回 ...
分类:
其他好文 时间:
2021-07-26 16:46:03
阅读次数:
0
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 近几天,老家河南遭受了近百年一遇的大暴雨,城市内涝严重,希望家乡人挺住,全国人民期待河南尽快好起来,天空放晴。 在此,仅以一篇郑州地铁五号线遭受暴雨侵袭的帖子作为记录。 一个女孩子写在死里逃生后:今天郑州暴雨,下午四点物业通知要停电所以需要尽快下班 ...
分类:
数据库 时间:
2021-07-22 17:35:06
阅读次数:
0
**背景:**公司项目要求全部换成 vue3 ,而且也没有应用像 element-ui 一类的UI组件,用到的公共组件都是根据项目需求封装的,下面是使用vue3实现简单的tabs组件,我只是把代码分享出来,实现思路如果有需要等我项目不忙了在更,希望大家多提些建议,共同学习共同进步。 tab-grou ...
分类:
其他好文 时间:
2021-07-21 17:37:04
阅读次数:
0
概述 我们在写odoo项目的时候,经常继承model.Model来创建我们自己的ORM映射关系表。 AbstractModel = BaseModel # 源码 class Model(AbstractModel): _auto = True # automatically create datab ...
分类:
其他好文 时间:
2021-07-21 17:34:08
阅读次数:
0
java注解的实现原理(1) 注解的本质就是一个继承了Annotation接口的接口 写在前面,在前面总结了java反射和动态代理的一些知识,同时之前没有仔细研究注解这块,只知道注解的实现原理是基于动态代理的,主要作用有一下: 1.编译检查:例如使用@SupperssWarnings,@Overri ...
分类:
编程语言 时间:
2021-07-21 17:30:29
阅读次数:
0
String对象的不可变性 在实现代码中,String类被final关键字修饰了。变量char数组也被final修饰了。 类被final修饰代表该类不可被继承,char[]被final+private修饰,代表String对象不可被修改。Java实现的这个特性叫做String对象的不可变性,即Str ...
分类:
其他好文 时间:
2021-07-19 16:51:57
阅读次数:
0
一、什么是泛型? 泛型是一种未知的数据类型,当我们不知道要使用什么数据类型的时候,可以使用泛型。 泛型也可以看成是一个变量,用来接收数据类型 E e:Element 元素 T t:type 类型 如: 1 public class ArrayList<E>{ 2 public boolean add ...
分类:
编程语言 时间:
2021-07-19 16:42:15
阅读次数:
0
0.需求 在实际的开发过程中,服务间调用一般使用Json传参的模式,SpringBoot项目无法使用@RequestParam接收Json传参 只有@RequestBody支持Json,但是每次为了一个接口就封装一次实体类比较麻烦 如果使用Map来进行参数接收,则会导致参数不可控,会在接口中新增较多 ...
分类:
编程语言 时间:
2021-07-19 16:41:17
阅读次数:
0