设计模式知识体系概览
答案
Rust 的设计模式与传统 OOP 语言有显著不同——组合优于继承,许多 OOP 模式在 Rust 中有更惯用的实现方式。
Rust vs OOP 设计模式
| OOP 概念 | Rust 替代方案 |
|---|---|
| 继承 | trait + 组合 |
| 抽象类 | trait(带默认实现) |
| 接口 | trait |
| 工厂方法 | new() 关联函数 |
| 单例 | LazyLock / OnceLock |
| 装饰器 | 函数组合、闭包 |
| 策略 | trait 或闭包 |
| 观察者 | Channel 或回调 |
| 状态机 | 枚举 + match |
Rust 特有模式
| 模式 | 说明 | 示例 |
|---|---|---|
| Newtype | 包装类型提供安全性 | struct UserId(u64) |
| Typestate | 编译时状态检查 | Builder 模式 |
| RAII Guard | 资源自动释放 | MutexGuard |
| Interior Mutability | 运行时借用检查 | RefCell, Cell |