为什么学习这个库?
设计模式与分层架构是前人经验的结晶,是解决常见软件设计问题的最佳实践。
掌握设计模式,让你的代码更具可读性、可维护性和可扩展性。
23种经典设计模式
涵盖创建型、结构型、行为型三大类设计模式,从单例到观察者,全面掌握
面向对象设计原则
SOLID原则、DRY原则等,让你的代码设计更加合理
多种编程范式
面向对象、函数式编程、面向过程等多种编程范式对比学习
分层架构模式
MVC、MVP、MVVM等经典架构模式,理解前后端分离的设计思想
实战代码示例
每个模式都有详细的代码实现和使用场景说明
多语言实现
Java、JavaScript、Python等多种语言实现,理解语言特性
学习内容地图
从基础到进阶,系统化学习设计模式与编程思想
面向对象设计7大原则(SOLID + 2)
掌握这些原则,让你的代码设计更加合理:
| 原则 | 核心思想 | 作用 | 代码 |
|---|---|---|---|
| 单一职责原则 SRP | 一个类只负责一项职责 | 降低复杂度,提高可维护性 | 查看 |
| 开闭原则 OCP | 对扩展开放,对修改关闭 | 提高代码稳定性,降低维护成本 | 查看 |
| 里氏替换原则 LSP | 子类可以替换父类 | 保证继承的正确性 | 查看 |
| 接口隔离原则 ISP | 使用多个小接口而非大接口 | 降低耦合,提高灵活性 | 查看 |
| 依赖倒置原则 DIP | 依赖抽象而非具体 | 降低耦合,提高可测试性 | 查看 |
| 组合复用原则 CRP | 优先使用组合而非继承 | 提高灵活性,避免继承陷阱 | 查看 |
| 迪米特法则 LoD | 最少知识原则 | 降低耦合,提高模块独立性 | 查看 |
编程范式
不同的编程思维方式:
| 范式 | 核心思想 | 特点 | 代码 |
|---|---|---|---|
| 面向对象编程 OOP | 通过对象和类组织代码 | 封装、继承、多态 | 查看 |
| 函数式编程 FP | 通过函数组合解决问题 | 纯函数、不可变性、高阶函数 | 查看 |
| 面向过程编程 | 通过过程和函数组织代码 | 简单直接、适合底层开发 | 查看 |
| 面向切面编程 AOP | 将横切关注点分离 | 日志、事务、权限 | 查看 |
| 事件驱动编程 | 通过事件触发响应 | 异步处理、解耦合 | 查看 |
| 响应式编程 | 基于数据流和变化传播 | 异步数据流、实时更新 | 查看 |
创建型设计模式(5种)
解决对象创建过程中的问题:
| 模式 | 核心思想 | 适用场景 | 代码 |
|---|---|---|---|
| 单例模式 Singleton | 保证一个类只有一个实例 | 配置管理、数据库连接池 | 查看 |
| 工厂方法 Factory Method | 定义创建对象的接口,由子类决定 | 日志记录器、数据库驱动 | 查看 |
| 抽象工厂 Abstract Factory | 创建相关对象的家族 | 跨平台UI组件、主题切换 | 查看 |
| 建造者模式 Builder | 分步骤创建复杂对象 | 复杂对象构造、配置对象 | 查看 |
| 原型模式 Prototype | 通过克隆创建对象 | 创建成本高的对象、避免初始化 | 查看 |
结构型设计模式(7种)
解决类或对象组合的问题:
| 模式 | 核心思想 | 适用场景 | 代码 |
|---|---|---|---|
| 适配器模式 Adapter | 将一个类接口转换成客户希望的接口 | 新旧系统兼容、接口不匹配 | 查看 |
| 桥接模式 Bridge | 将抽象与实现分离 | 多维变化、平台独立 | 查看 |
| 组合模式 Composite | 将对象组合成树形结构 | 树形结构处理、文件系统 | 查看 |
| 装饰器模式 Decorator | 动态地给对象添加职责 | 功能扩展、避免继承爆炸 | 查看 |
| 外观模式 Facade | 为子系统中的一组接口提供统一接口 | 简化复杂系统、API封装 | 查看 |
| 享元模式 Flyweight | 运用共享技术有效支持大量细粒度对象 | 大量相似对象、内存优化 | 查看 |
| 代理模式 Proxy | 为其他对象提供一种代理以控制对这个对象的访问 | 远程代理、虚拟代理、保护代理 | 查看 |
行为型设计模式(11种)
解决对象之间通信和职责分配的问题:
| 模式 | 核心思想 | 适用场景 | 代码 |
|---|---|---|---|
| 策略模式 Strategy | 定义算法族,分别封装起来 | 算法可替换、避免条件语句 | 查看 |
| 模板方法 Template Method | 定义算法骨架,子类实现细节 | 算法框架、代码复用 | 查看 |
| 观察者模式 Observer | 对象间的一对多依赖关系 | 事件处理、消息通知 | 查看 |
| 迭代器模式 Iterator | 提供一种方法顺序访问聚合对象 | 遍历集合、统一接口 | 查看 |
| 责任链模式 Chain of Responsibility | 将请求沿着处理链传递 | 审批流程、日志处理 | 查看 |
| 命令模式 Command | 将请求封装成对象 | 撤销重做、队列请求 | 查看 |
| 备忘录模式 Memento | 在不破坏封装的前提下保存状态 | 撤销重做、状态保存 | 查看 |
| 状态模式 State | 允许对象在内部状态改变时改变行为 | 状态机、游戏角色状态 | 查看 |
| 访问者模式 Visitor | 在不改变类结构的前提下定义新操作 | 编译器、文档对象模型 | 查看 |
| 中介者模式 Mediator | 用一个中介对象封装一系列对象交互 | 聊天室、GUI组件交互 | 查看 |
| 解释器模式 Interpreter | 定义语言的文法表示 | 表达式求值、SQL解析 | 查看 |