最少知识原则说的是一个软件实体应当尽可能的与其他实体减少相互作用。
这里的软件实体是一个广义概念,不仅包括对象,还包括系统,类,模块,函数,变量灯。这样来说最少知识原则涵盖的范围就很大了。下面看看和javascript相关的内容
参考《javascirpt模式设计与开发实践》第19章
-
减少对象之间的联系
最少知识原则指导我们,如果两个对象之间不必彼此通讯,那么这两个对象之间就不要发生直接联系。常见的做法是引入一个第三者来承担彼此的通信任务。 -
javascript设计模式中的最少知识原则
中介者模式
这个模式是使用者们是不发生任何联系的,所有的信息都是由中介者来完成。
react通过引入redux应该就是这种模式。react组件之间不再发生任何的联系,所有与组件state变化的通讯请求都是通过redux来完成的。这样一来,组件可以应对复杂的state变化。
外观模式
这是针对使用者而言的。外观模式作用是对交互使用者隐藏子系统的复杂性。
- [ ] 外观模式为一组系统提供一个便利的入口。在jquery中兼容了浏览器的差异,但是使用者使用的是同一个api接口,就是一个体现
- [ ] 隔离使用者和复杂系统的联系,使用者不需要去了解具体的差异
javascript的函数封装
javascript函数有着至高无上的权利,灵活性很大。通过使用闭包隐藏变量,通过单例模式,揭示模式,策略模式.javascript使用函数和对象字面量的方法隐藏具体的实现逻辑。只暴露相关的方法。
这就是最少知识原则。这也是基础原则在javascript程序设计中应该是时刻都要体现这种原则。