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
概述 我们在写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
Father.hpp 1 // 2 // Created by Administrator on 2021/7/15. 3 // 4 5 #ifndef C__TEST01_FATHER_HPP 6 #define C__TEST01_FATHER_HPP 7 8 9 class Father { ...
分类:
其他好文 时间:
2021-07-16 17:31:08
阅读次数:
0
文章目录 8.1 可变参数默认值设为`None`8.2 对子类继承的变量要做显式定义和赋初值8.3 严禁使用注释行等形式仅使功能失效8.4 慎用`copy`和 `deepcopy`8.5 系统路径推荐使用 `pathlib.Path`8.6 使用`subprocess`模块代替`os.system` ...
分类:
编程语言 时间:
2021-07-12 17:57:57
阅读次数:
0
2021年7月10日22:44:49 trait zx { // const sss = 9; public static function tt() { echo 'tt'; } public function yy() { echo 'yy'; } } class uu { use zx; co ...
分类:
Web程序 时间:
2021-07-12 17:56:00
阅读次数:
0