跳到主要内容

杂项

控制反转

依赖注入 (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;