设计模式中的设计原则之最小知识原则(Least Knowledge Principle - LKP)

1、what

一个软件实体应当尽可能少的与其他实体发生相互作用

软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。

2、why

单一职责原则知道我们把对象划分成较小的粒度,提高对象的可复用性。但是越来越多的对象之间可能会产生错综复杂的联系,如果修改了其中一个对象,很可能会影响到跟它相互引用的其他对象。

对象和对象耦合在一起,有可能会降低它们的可复用性。

最少知识原则要求我们在设计程序时,应尽量减少对象之间的交互。

如果两个对象之间不必彼此直接通信,那么这两个对象就不要发生直接的相互联系。

3、how

引入第三者对象,来承担这些对象之间的通信作用。

4、设计模式中的最少知识原则

①中介者模式

②外观模式

5、相对性

虽然遵守最小知识原则减少了对象之间的依赖,但也有可能增加一些庞大到难以维护的第三者对象。实际开发中,是否选择让代码符合最少知识原则,要根据具体的环境来定。

参考:

《JavaScript设计模式与开发实践》 曾探著 AlloyTeam出品

猜你喜欢

转载自my.oschina.net/wangch5453/blog/1816999
今日推荐