# design-pattern
**Repository Path**: ws_developer/design-pattern
## Basic Information
- **Project Name**: design-pattern
- **Description**: Java设计模式
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-12-12
- **Last Updated**: 2024-12-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 设计模式七大原则
## 01.开闭原则(Open-Close principle,OCP)
## 02.依赖倒置原则(Dependence Inversion Principle,DIP)
## 03.单一职责(Simple Responsibility Pinciple,SRP)
## 04.接口隔离原则(Interface Segregation Principle, ISP)
## 05.迪米特原则(最少知道原则)(Law of Demeter LoD)
## 06.里氏替换原则(Liskov Substitution Principle,LSP)
## 07.合成复用原则(Composite Aggregate Reuse Principle,CARP)
# GOF 23种设计模式的归纳
分类 | 作用 | 设计模式
---|---|---
创建型 |对象实例化的模式,用于解耦对象的实例化过程 |工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、单例模式(Singleton)、
原型模式(Prototype)、建造者模式(Builder)
结构型 |把类或对象结合在一起形成一个更大的结构 |代理模式(Proxy)、门面模式(Facade)、装饰器模式(Decorator)、享元模式(Flyweight)、
组合模式(Composite)、适配器模式(Adapter)、桥接模式(Bridge)
行为型 |类和对象如何交互,及划分责任和算法 |模板方法模式(Template Method)、策略模式(Strategy)、责任链模式(Chain of Responsibility)、
迭代器模式(Iterator)、命令模式(Command)、状态模式(State)、备忘录模式(Memento)、
中介者模式(Mediator)、解释器模式(Interpreter)、观察者模式(Observer)、访问者模式(Visitor)
# JAVA设计模式
# A.创建型模式
> 对象实例化的模式,创建型模式用于解耦对象的实例化过程。
## 01.工厂模式(Factory Pattern)
### 1.1 简单工厂(Simple Factory)
### 1.1 工厂方法(Factory Method)[GOF23]
### 1.1 抽象工厂(Abstract Factory)[GOF23]
## 02.单例模式(Singleton Pattern)[GOF23]
### 2.1 饿汉式
#### 2.1.1 静态实例对象
#### 2.1.1 静态代码块
### 2.2 懒汉式
#### 2.2.1 双重检查锁
#### 2.2.2 静态内部类
### 2.3 反射破坏单例并解决
### 2.4 序列化破坏单例并解决
### 2.5 注册式
#### 2.5.1 枚举单例并反射/序列化测试
#### 2.5.2 容器缓存单例
### 2.6 ThreadLocal线程单例
## 03.原型模式(Prototype Pattern)[GOF23]
### 3.1 浅克隆
### 3.2 深克隆
## 04.建造者模式(Builder Pattern)[GOF23]
### 4.1 通用写法
### 4.2 链式写法
# B.结构型模式
> 把类或对象结合在一起形成一个更大的结构。
## 05.代理模式(Proxy Pattern)[GOF23]
### 5.1 静态代理
### 5.2 动态代理
#### 5.2.1 JDK动态代理
#### 5.2.2 CGlib动态代理
## 06.门面(外观)模式(Facade Pattern)[GOF23]
## 07.装饰器模式(Decorator Pattern)[GOF23]
## 08.享元模式(flyweight pattern)[GOF23]
## 09.组合模式(Composite pattern)[GOF23]
### 9.1 透明模式
### 9.2 安全模式
## 10.适配器模式(Adapter Pattern)[GOF23]
### 10.1 类适配器
### 10.2 对象适配器
### 10.3 接口适配器
## 11.桥接模式(Bridge Pattern)[GOF23]
# C.行为型模式
> 类和对象如何交互,及划分责任和算法。
## 12.委派模式(Delegate Pattern)
> 又叫委托模式,是一种面向对象的设计模式,允许对象组合实现与
继承相同的代码重用。
它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理
解为全权代理,但是代理模式注重过程,而委派模式注重结果。
委派模式属于行为型模式,但不属于GOF23种设计模式中。
## 13.模板模式(Template Pattern)[GOF23]
## 14.策略模式(Strategy Pattern)[GOF23]
## 15.责任链模式(Chain Pattern)[GOF23]
## 16.迭代器模式(Iterator Pattern)[GOF23]
## 17.命令模式(Command Pattern)[GOF23]
## 18.状态模式(State Pattern)[GOF23]
## 19.备忘录模式(Memento Pattern)[GOF23]
## 20.中介者模式(Mediator Pattern)[GOF23]
## 21.解释器模式(Interpreter Pattern)[GOF23]
## 22.观察者模式(Observer Pattern)[GOF23]
## 23.访问者模式(Visitor Pattern)[GOF23]