feat : Document

This commit is contained in:
2025-09-07 00:05:45 +08:00
parent dfbb4b73ae
commit d163de61ee
2 changed files with 88 additions and 0 deletions

36
document/adapter.md Normal file
View File

@@ -0,0 +1,36 @@
### 适配器模式 (Adapter Pattern) 详解
> 适配器模式是一种结构型设计模式,它允许不兼容的接口之间能够协同工作。就像现实世界中的电源适配器可以让不同国家标准的插头工作一样,软件中的适配器模式充当两个不兼容接口之间的桥梁。
#### 核心概念
适配器模式主要解决以下问题:
- 当需要使用现有类,但其接口与你的需求不匹配时
- 当你想创建一个可复用的类,该类可以与不相关或不可预见的类协同工作
- 当你想使用几个现有的子类,但通过子类化每个子类来调整它们的接口是不切实际的
#### 应用场景
适配器模式的典型应用场景包括:
- 系统集成:将新系统与旧系统集成时,需要让旧系统的接口与新系统兼容
- 第三方库适配:当使用第三方库时,其接口与你的应用不匹配
- 接口标准化:统一多个类的接口,使它们可以以相同的方式被使用
- 测试驱动开发:创建测试替身(Test Double)来模拟真实对象
#### 优缺点
##### 优点
- 提高了类的复用性
- 增加了类的透明度
- 灵活性好
- 符合开闭原则(对扩展开放,对修改关闭)
##### 缺点
- 过多使用适配器会使系统变得凌乱
- 在某些语言中(如Java)只能适配一个类,不能适配多个类
适配器模式是一种非常实用的设计模式,在系统集成和重构过程中经常使用,能够有效地解决接口不兼容的问题。

52
document/decorator.md Normal file
View File

@@ -0,0 +1,52 @@
### 装饰器模式 (Decorator Pattern) 详解
> 装饰器模式是一种结构型设计模式,它允许向一个现有的对象动态地添加新的功能,同时不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,提供了比继承更有弹性的替代方案。
#### 核心概念
装饰器模式主要解决以下问题:
- 需要动态扩展一个对象的功能,而不影响其他对象
- 当继承不适合或不可行时如需要大量子类或final类
- 需要运行时添加或撤销功能
#### 实现方式
装饰器模式通常包含以下角色:
- Component抽象组件定义对象接口可以动态添加职责
- ConcreteComponent具体组件定义具体对象
- Decorator抽象装饰类继承/实现Component并持有Component引用
- ConcreteDecorator具体装饰类向组件添加具体职责
#### 应用场景
装饰器模式的典型应用场景包括:
- GUI组件动态添加滚动条、边框等功能
- I/O流处理Java中的BufferedReader、ZipInputStream等
- Web开发中间件装饰HTTP请求/响应对象
- 游戏开发:动态添加角色装备或技能
- 权限控制:动态添加权限检查
#### 优缺点
##### 优点
- 比继承更灵活(可以在运行时添加或移除功能)
- 避免子类爆炸问题
- 符合开闭原则(对扩展开放,对修改关闭)
- 可以嵌套多个装饰器
##### 缺点
- 会产生许多小对象,增加系统复杂性
- 装饰器与组件接口必须一致,限制了灵活性
- 调试困难(多层装饰时不易识别)
装饰器模式在Java标准库中有广泛应用特别是I/O流处理部分如BufferedInputStream装饰FileInputStream。理解这种模式有助于编写更灵活、更易扩展的代码。
#### tips
`App\Service\Test\Decorator\ContainerService`
`App\Aspect\Test\Decorator\Aop\CacheableAspect`