Skip to content

Commit a703594

Browse files
committed
最少知识原则
1 parent f917349 commit a703594

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

seventeen-chapter/index.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//lkp 最小知识原则
2+
//说的是一个软件实体应当尽可能少地与其他实体发生相互作用
3+
genneral.getColonel(c).getMajor(m).getCaptain(c).getSergeant(s)
4+
.getPrivate(p).digFoxhole();
5+
6+
//减少对象之间的联系
7+
// 最少知识原则要求我们在设计程序时,应当尽量减少对象之间的交互
8+
// 常见的做法是引入一个第三者对 象,来承担这些对象之间的通信作用
9+
10+
// 设计模式中的最少知识原则
11+
// 1. 中介者模式 博彩公司
12+
// 2. 外观模式 外观模式的作用是对客户屏蔽一组子系统的复杂性 一键洗衣按钮
13+
14+
// 封装在最少知识原则中的体现
15+
// 要编写一个具有缓存效果的计算乘积的函数
16+
var mult = (function () {
17+
var cache = {};
18+
return function(){
19+
var args = Array.prototype.join.call(arguments,',');
20+
if(cache[args]){
21+
return cache[args]
22+
}
23+
var a = 1;
24+
for(var i=0,l=arguments.length;i<l;i++){
25+
a = a * arguments[i]
26+
}
27+
return cache[args] = a;
28+
}
29+
})()
30+
31+
mult(1,2,3)

0 commit comments

Comments
 (0)