0%

工厂方法


栗子

List.of()

Map.of()

MessageDigest.getInstance()

过程

接口

实现类

在接口中定义一个静态方法返回实现类的实例

Read more »

原型


概念

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

创建新对象的时候,根据现有的一个对象创建

栗子

Arrays.copyof

Object.clone

Maven


java项目所需

classpath

  • 概念

    • 一组路径的集合
  • 用途

    • 告知jvm哪里可以找到指定的class文件
  • 默认值

    • 当前目录

项目的目录结构

Read more »

单例


定义

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

特点

在某个进程中,某个类有且只有一个实例

实现

方式一

  • private的构造方法确保外部无法实例化
  • private的static变量持有唯一的实例
  • public的static方法返回此实例确保外部能获得此唯一实例

方式二

  • enum

    • 枚举类的每个枚举都是单例

方式三

  • 自觉
Read more »

创建型模式


Factory Method

Abstract Factory

Builder

Prototype

Singleton

多线程


condition

地位

  • reentrantlock的partner
  • 类似于synchronized和(wait、notify)的关系
  • 一个lock对应一个condition

new

  • 必须使用对应lock的newCondition方法

方法

  • await()

    • 可以设置等待时间、超过后自己醒来
  • signal()

  • signalAll()

Read more »

装饰器


Filter模式就是Decorator模式

思想

把需要新添加的内容用Decorator的方式层层加之于上,把新功能组合于原有基础之上

优势

可以将核心功能和附加功能分开

  • 增加核心功能就增加子类
  • 增加附加功能就增加Decorator的子类
  • 可以在运行期间动态的给核心功能添加附加功能
Read more »

组合


定义

将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

实现

统一单个节点以及“容器”节点的接口

容器节点可以添加任意个单个节点,形成层级结构

Read more »

桥接


定义

将抽象部分与它的实现部分分离,使它们都可以独立地变化

继承存在的问题

按特点取名继承

  • 子类数量爆炸

解决方案

在父类里设置一个可以插入的槽位

可以将独立的特点划分成不同的Component

这些Component可以被插入到槽位里

Read more »