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

1、what

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

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

2、why

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

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

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

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

3、how

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

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

①中介者模式

②外观模式

5、相对性

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

参考:

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

 

转载于:https://my.oschina.net/wangch5453/blog/1816999

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 的设计模式并没有八大原则,但是设计模式常用的一些原则包括以下几个: 1. 开闭原则(Open-Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。 2. 单一职责原则(Single Responsibility Principle,SRP):一个类只负责一个功能或者只有一个引起它变化的原因。 3. 里氏替换原则(Liskov Substitution Principle,LSP):子类必须能够替换掉它们的父类并且保持程序的正确性。 4. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖于底层模块,两者都应该依赖于抽象。 5. 接口隔离原则(Interface Segregation Principle,ISP):不应该强迫客户端依赖于它们不需要的接口。 6. 组合/聚合复用原则(Composite/Aggregate Reuse Principle,CARP):优先使用组合或聚合关系复用代码,而不是继承。 7. 迪米特法则(Law of Demeter,LoD):一个对象应该对其他对象有最少的了解,不和陌生人说话,只和你的朋友(也就是直接的朋友)通信。 8. 最少知识原则(Least Knowledge PrincipleLKP):一个软件实体应当尽可能少地与其他实体发生相互作用,使得系统的各个部分更独立。 这些原则都是为了提高代码的可维护性、可扩展性、可重用性和可测试性,是面向对象设计和编程非常重要的基本原则。在实际的软件开发,应该根据具体的情况选择合适的原则进行应用。同时,这些原则也是设计模式的基础,很多设计模式都是基于这些原则的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值