杂项
控制反转
依赖注入 (loc)
- 将依赖的类作为参数,运行时确定;
class TextInput {
private spellCheck: SpellCheck;
public TextInput(spellCheck: SpellCheck) {
this.spellCheck = spellCheck;
}
}
控制反转 (di)
- 控制反转是管理依赖注入的应用;
- 依赖注入是控制反转的实现方式;
SOLID 原则
单一职责原则
- 一个类只承担一个功能的职责;
开闭原则
基本概念
- 对拓展开放,对修改关闭;
- 在不修改原有类的基础上添加新功能;
实现方式
- 基于接口和依赖注入实现;
- 使用接口约束类逻辑;
- 使用依赖注入/委托将类的逻辑抽象至类外部;
interface InvoicePersistence {
save(invoice: Invoice);
}
class DatabasePersistence implements InvoicePersistence {
public save(invoice: Invoice) {
// Save to DB
}
}
里氏替换原则
- B 是 A 的子类;
- 使用 A 的任何场景,都可以使用 B;
接口隔离
- 一个类对另一个类的依赖应该建立在最小的接口上;
- 细化接口,将臃肿接口拆分为若干接口;
- 减少类之间的依赖程度;
依赖倒置
- 使用接口或者抽象类创建类;
- 使用委托的方式抽离逻辑;
- 以便实现开闭原则;
- 概念类似于 loc 和 di;