美文网首页
六大设计原则-最少知识原则

六大设计原则-最少知识原则

作者: 小杰66 | 来源:发表于2021-04-27 08:17 被阅读0次

最少知识原则

Least Knowledge Principle 简称LKP

什么是最少知识原则

一个软件实体应当尽可能少地与其他实体发生相互作用。
减少对象(方法、系统、类、模块等)之间的联系。

最少知识原则的优点

降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。

如何做到最少知识原则

  1. 只与直接的朋友通信
    每个对象都必然会与其他对象有耦合关系,两个对象之间的耦合就成为朋友关系,这种关系的类型有很多,如组合、聚合、依赖等。
    朋友类的定义:出现在成员变量、方法的输入输出参数中的类。 而方法体类内部的类不能算。
  2. 不能过于亲密
    只与直接的朋友通信,但是不能过于亲密,否则耦合关系变得异常牢固,而且,修改时涉及的面也就越大,变更引起的风险就越大。
  3. 是自己的就是自己的
    如果我们发现在一个类中的一个方法,放在本类可以,放在其他的类中也可以并且对任何的类都不产生影响,那么就遵循一个原则,把方法放在本类中

代码举例

第一段代码中小组对于老师来说不是朋友类不应该产生关系。

class Teacher {
  constructor() {
    this.group = new Group();
  }

  command(leader) {
    leader.count(this.group);
  }
}

class Leader {
  constructor() {}

  count(group) {
    //...
  }
}

class Group {
  constructor() {}
  addPerson() {}
}
class Teacher {
  constructor() {}

  command(leader) {
    leader.count();
  }
}

class Leader {
  constructor() {
    this.group = new Group();
  }

  count(group) {
    //...
  }
}

class Group {
  constructor() {}
  addPerson() {}
}

相关文章

  • [Code Design] 六大设计原则之`迪米特法则`

    六大设计原则之迪米特法则 定义 迪米特法则(Law of Demeter)又叫作最少知识原则(Least Know...

  • Android设计模式—面向对象六大原则

    面向对象六大原则: 单一职责原则 开闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 最少知识原则 单一职责原则 ...

  • 六大设计原则-最少知识原则

    最少知识原则 Least Knowledge Principle 简称LKP 什么是最少知识原则 一个软件实体应当...

  • 六大设计原则-迪米特原则【Low Of Demeter】

    六大设计原则 单一职责原则 里式替换原则 依赖倒置原则 接口隔离原则 迪米特原则 开闭原则 迪米特原则 定义:最少...

  • 设计模式

    设计模式六大原则[设计模式六大原则(1):单一职责原则][设计模式六大原则(2):里氏替换原则][设计模式六大原则...

  • 设计模式-六大原则

    转载自 设计模式六大原则 目录:- 设计模式六大原则(1):单一职责原则- 设计模式六大原则(2):里氏替换原则-...

  • 设计模式六大原则

    目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...

  • 设计模式6大原则

    目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...

  • 设计原则之6大原则

    目录:设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置...

  • 设计原则之最少知识原则

    最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用。这里的软件实体是一个广义的概念,不仅...

网友评论

      本文标题:六大设计原则-最少知识原则

      本文链接:https://www.haomeiwen.com/subject/ovohrltx.html