js的七大设计原则--迪米特原则

一.什么是迪米特原则

迪米特原则也叫最少知道原则,一个类应该对其他对象保持最少的了解。如果两个类不必彼此直接通信,那么,这两个类就不应该发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的时候,就可以通过第三者转发这个调用。

二。优点:

使对象之间的耦合降到最小,符合高内聚,低耦合的特性,从而使类具有更好的可读性和可维护性。

三。案例:

在项目中,咱们通过vuex请求数据进行页面的渲染的这个工程,页面 只负责渲染, store文件负责数据的状态的更正,页面和store文件之间 是通过 dispatch 进行联系的。所以 这个过程咱们可不可以理解为“迪米特法则”呢?dispatch 这个方法就相当于中介,将页面的渲染和请求数据的关联起来。

我们通过手机去阅读电子书这个过程,就是 打开手机,打开阅读软件,选择书籍,进行阅读.手机和阅读电子书是两个不相干的事情,但是需要阅读软件将二者进行关联。

    // 定义手机类
  function Phone() {
    console.log('phone', this)
    this.app = new App();
    this.openPhone = function() {
      console.log('打开app')
      this.app.openApp()
    }
  },
  // 定义App
  function App() {
    console.log('app', this)
    this.reading = new Reading();
    this.openApp= function () {
      console.log('app进行阅读')
      this.reading.read()
    }
  },
  // 定义阅读
  function Reading() {
    console.log('reading', this)
    this.read= function () {
      console.log('开始阅读了啦啦啦')
    }
  }
使用: var phone = new Phone()
phone.openPhone()

四。注意:

迪米特法则的初衷使降低类之间的耦合,由于每个类都减少了不必要的依赖,因此可以降低耦合关系。但是要适度,虽然可以避免与非直接的类通信,但是通信需要 一个“中介”来发生联系。就拿上面的案例来说,阅读软件就相当于“中介”,来使手机和阅读进行联系。过分的使用迪米特法则,会产生大量的中介列,导致系统复杂度变大。

猜你喜欢

转载自www.cnblogs.com/mn6364/p/10459199.html