js最少知识原则
来源:互联网 发布:iphone吉他调音软件 编辑:程序博客网 时间:2024/05/22 02:05
<h1>最少知识原则也叫迪米特法则</h1> <p>最少知识原则(LKP)说的是一个软件实体尽量减少与其他实体发生相互。这里的软件实体是一个广义的概念, 不仅包括对象,还包括系统、类、模块、函数、变量等。本节我们主要针对对象里说明这个原则。</p> <p>减少对象之间的联系:单一职责原则知道我们把对象划分成较少对象与对象耦合在一起,有可能会降低他们的可复用性。 在程序中,对象的“朋友”太多并不是一件好事,“城门失火,殃及池鱼”的故事时有发生。</p> <p>最少知识原则要求我们在设计程序时,应当减少对象之间的交互。如果两个对象之间不必彼此直接通信,那么这两个对象就不要发生直接的相互联系。 常见的做法是引入一个第三者对象,来承担这些对象之间的通信作用。如果一些对象需要向另一些对象发起请求,可以通过第三对象来转发这些请求。</p> <h1>设计模式中的最少知识原则</h1> <p>最少知识原则在设计模式中体现最多的地方是中介者模式</p> <p>封装在最少知识原则中的体现</p> <p>封装在很大程度上表达的是数据的隐藏。一个模块或者对象可以将内部的数据或者实现细节隐藏起来,只要暴露必要的接口API供外界访问。 对象之间难免产生联系,当一个对象必须引用另一个对象的时候,我们可以暴露必要接口,让对象之间的联系限制在最小的范围之内。</p> <p>同样,封装也用来限制变量的作用域。把变量的可见性限制在一个尽可能小的范围内,这个变量对其他不相关模块的影响就越小,变量被改写和发生冲突的机会就越少。这也是广义的最少知识原则的一种体现。</p> <P>编写一个缓存效果的计算乘积的封装函数的示例</P> <script> var mult = ( function(){ var cache = {}; return function(){ var args = Array.prototype.join.call( arguments, "," ); if( cache[ args ] ){ return cache[ args ]; } var a = 1; for( var i = 0; i < arguments.length; i++ ){ a = a * arguments[ i ]; } return cache[ args ] = a; } } )(); console.log(mult( 2, 3, 4 )); </script>
0 0
- js最少知识原则
- 最少知识原则
- 最少知识原则
- 最少知识原则
- 设计模式-最少知识原则
- 设计原则之最少知识原则 javascript
- 迪米特法则(LoD)-最少知识原则
- 设计模式---->最少知识原则/迪米特法则
- 外观模式-Car(最少知识原则)
- 最少知识原则(Least Knowledge Principle)
- 设计模式之迪米特法则(最少知识原则)学习
- 设计模式(一):迪米特法则(最少知识原则)
- 设计模式——最少知识原则/迪米特法则
- 设计模式之迪米特法则LoD(最少知识原则)
- 迪米特原则(也叫最少知识法则)
- 迪米特法则(LOD)——最少知识原则
- 设计模式无限重读之最少知识原则(LKP)
- 设计模式六大原则(五)-- 最少知识原则 ( LKP ) / 迪米特法则 ( LOD )
- 结构型模式之外观模式(Facade Pattern)
- Python标准类型分类
- 程序员转成申请(java)
- 从AP微积分看美国的微积分教育
- XSS跨站总结
- js最少知识原则
- Thymeleaf字面量
- Kruskal,最小生成树,树链剖分,LCA(邦德,UVA 11354)
- 数字三角形(动态规划)poj1163
- MySQL学习之主从配置及读写分离详解
- .Net程序员学用Oracle系列(14):子查询、集合查询
- mysql中一些常用操作
- 用cxf做基于spring的web service开发(八)
- 算法训练 排序