设计模式
参考资料
- 大话设计模式
- 设计模式: 可复用面向对象软件的基础
- 重构: 改善既有代码的设计
简单工厂模式
- 不是 GoF \(23\) 种设计模式之一
- 一个描述接口的父类 + 多个实现接口的子类 + 一个根据条件决定实例化哪个子类的工厂类
- 最后统一由工厂类创建对象,客户端当作父类使用
策略模式
- 定义了算法家族, 分别封装起来, 让它们之间可以互相替换, 算法的变化不会影响使用算法的客户
- 使用方法就是往上下文类当中注入一个具体算法的实例
- 经常结合简单工厂模式使用
- 策略模式封装了变化, 避免使用大量的条件判断语句
- 先校验条件, 再选择具体算法, 这使得算法可以自然的建立在约定之上
单一职责原则
- SRP: 一个类应该只有一个引起它变化的原因
- 一个模块应该只对一类行为者负责
开闭原则
- OCP: 软件实体 (类, 模块, 函数等等) 应该可以扩展, 但不可修改
- 即使拓展没有提前预想到, 也应该立刻进行拓展对应抽象
依赖倒置原则
- DIP: 高层模块不应该依赖低层模块, 二者都应该依赖抽象
- 系统中总会有一些违反 DIP 的具体实现
- 里氏替换原则是开闭原则和依赖倒置原则的基础