0%
工厂方法
栗子
List.of()
Map.of()
MessageDigest.getInstance()
过程
接口
实现类
在接口中定义一个静态方法返回实现类的实例
原型
概念
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
创建新对象的时候,根据现有的一个对象创建
栗子
Arrays.copyof
Object.clone
Maven
java项目所需
classpath
项目的目录结构
单例
定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
特点
在某个进程中,某个类有且只有一个实例
实现
方式一
- private的构造方法确保外部无法实例化
- private的static变量持有唯一的实例
- public的static方法返回此实例确保外部能获得此唯一实例
方式二
方式三
创建型模式
Factory Method
Abstract Factory
Builder
Prototype
Singleton
多线程
condition
地位
- reentrantlock的partner
- 类似于synchronized和(wait、notify)的关系
- 一个lock对应一个condition
new
- 必须使用对应lock的newCondition方法
方法
await()
signal()
signalAll()
装饰器
Filter模式就是Decorator模式
思想
把需要新添加的内容用Decorator的方式层层加之于上,把新功能组合于原有基础之上
优势
可以将核心功能和附加功能分开
- 增加核心功能就增加子类
- 增加附加功能就增加Decorator的子类
- 可以在运行期间动态的给核心功能添加附加功能
组合
定义
将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
实现
统一单个节点以及“容器”节点的接口
容器节点可以添加任意个单个节点,形成层级结构
桥接
定义
将抽象部分与它的实现部分分离,使它们都可以独立地变化
继承存在的问题
按特点取名继承
解决方案
在父类里设置一个可以插入的槽位
可以将独立的特点划分成不同的Component
这些Component可以被插入到槽位里