# design-pattern
**Repository Path**: jackaroo2020/design-pattern
## Basic Information
- **Project Name**: design-pattern
- **Description**: 设计模式笔记及源码
- **Primary Language**: Java
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-07-25
- **Last Updated**: 2025-09-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 设计模式
## README
### 面向对象
面向对象是软件开发方法,一种编程范式。相对于面向过程来讲的,它从更高的层次来进行系统建模,更贴近事物的自然运行模式。
[封装、抽象、继承、多态分别可以解决哪些编程问题](note/L1_面向对象/L01_封装、抽象、继承、多态分别可以解决哪些编程问题.md)
[接口vs抽象类的区别](note/L1_面向对象/L02_接口vs抽象类的区别.md)
[如何对接口鉴权这样一个功能开发做面向对象分析设计](note/L1_面向对象/L03_如何对接口鉴权这样一个功能开发做面向对象分析设计.md)
### 设计原则
[设计原则](note/L2_设计原则/images/设计原则思维导图.png)是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。
[SOLID原则_单一职责原则](note/L2_设计原则/L01_单一职责原则.md)
[SOLID原则_开闭原则](note/L2_设计原则/L02_开闭原则.md)
[SOLID原则_里氏替换原则](note/L2_设计原则/L03_里氏替换原则.md)
[SOLID原则_接口隔离原则](note/L2_设计原则/L04_接口隔离原则.md)
[SOLID原则_依赖反转原则](note/L2_设计原则/L05_依赖反转原则.md)
[KISS原则和YAGNI原则](note/L2_设计原则/L06_KISS原则和YAGNI原则.md)
[DRY原则](note/L2_设计原则/L07_DRY原则.md)
[迪米特法则](note/L2_设计原则/L08_迪米特法则.md)
[实战_针对业务系统的开发,如何做需求分析和设计.md](note/L2_设计原则/L09_实战_针对业务系统的开发,如何做需求分析和设计.md)
[实战_针对非业务的通用框架开发,如何做需求分析和设计](note/L2_设计原则/L10_实战_针对非业务的通用框架开发,如何做需求分析和设计.md)
### 规范与重构
[规范与重构](note/L3_规范与重构/images/规范与重构思维导图.png)
[为什么要重构](note/L3_规范与重构/L01_为什么要重构.md)
[单元测试](note/L3_规范与重构/L02_单元测试.md)
[什么是代码的可测试性](note/L3_规范与重构/L03_什么是代码的可测试性.md)
[改善代码质量的20条编程规范](note/L3_规范与重构/L04_改善代码质量的20条编程规范.md)
[实战_重构一段ID生成器](note/L3_规范与重构/L05_实战_重构一段ID生成器.md)
### 设计模式
设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提高代码的可扩展性。
#### 创建型模式
创建型设计模式主要解决“对象的创建”问题。
[L01_单例模式(Singleton Pattern)](note/L4_创建型/L01_单例模式.md)
[L02_工厂模式(Factory Pattern)](note/L4_创建型/L02_工厂模式.md)
[L03_建造者模式(Builder Pattern)](note/L4_创建型/L03_建造者模式.md)
[L04_原型模式(Prototype Pattern)](note/L4_创建型/L04_原型模式.md)
#### 结构型模式
结构型设计模式主要解决“类或对象的组合或组装”问题。
#### 行为型模式
行为型设计模式主要解决的就是“类或对象之间的交互”问题