# 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)
#### 结构型模式 结构型设计模式主要解决“类或对象的组合或组装”问题。
#### 行为型模式 行为型设计模式主要解决的就是“类或对象之间的交互”问题