首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

法则

法则,也称为最少知识原则(Law of Demeter),是面向对象设计中的一个原则,旨在降低对象之间的耦合性,提高系统的可维护性和可扩展性。...法则的核心思想可以概括为以下几点: 一个对象应该尽量少地了解其他对象的内部结构和实现。 一个对象只与其直接朋友(即与其关联最密切的对象)进行交互。...以下是一个示例代码来说明法则: 假设我们有一个电商系统,包含了顾客(Customer)、订单(Order)和商品(Product)这三个类。...这会导致Customer类与Order类和Product类之间存在紧耦合的关系,违反了法则。...符合法则的改进示例: class Product { private String name; private double price; public Product(

16540
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    法则与重构

    标签 | 面向对象设计 重构 字数 | 2973字 阅读 | 8分钟 在面向对象设计的世界里,有一个寻常却又常常为人所忽略的原则——“(Law of Demeter)”法则。...对于PaperBoy而言,Wallet不满足法则三个条件中的任何一个,因此让PaperBoy与Wallet对象直接交互是错误的行为。...这里所谓的“隐私”,可以视为是“数据”,是“信息”,是“知识”,因此我们往往又将法则称之为“最小知识法则”。 当我们理解“最小知识法则”时,又可以从职责的角度去思考以上代码。...所以“最小知识法则”乃善法,在对象社区中,我们就应该刻意减少对象之间彼此深入的了解。了解最小的知识,就意味着依赖最小,彼此产生的影响就会最小。...判断一段代码是否违背了法则,有一个小窍门,就是看调用代码是否出现形如a.m1().m2().m3().m4()之类的代码。

    49460

    面向对象设计原则-法则

    原理法则的核心思想是尽量减少对象之间的交互,使得系统的耦合度降低。它强调了以下两个方面:一个对象应该对其他对象尽可能少地了解。一个对象不应该直接与其他对象交互,而应该通过一个中间对象来进行交互。...具体来说,法则可以被描述为以下三个要点:只与直接的朋友通信。一个对象应该只与它直接的朋友通信,而不是跟“陌生人”说话。...法则的目的是将一个系统分解成更小的、更简单的部分,使得每个部分可以独立地进行开发和维护。它可以有效地降低系统的复杂度和耦合度,提高系统的可维护性和可扩展性。...应用法则可以应用于以下几个方面:系统设计:在系统设计阶段,应该尽可能地减少对象之间的交互,避免将不相关的对象耦合在一起。应该将系统分解成更小、更简单的部分,使得每个部分可以独立地进行开发和维护。...代码编写:在代码编写阶段,应该尽可能地遵守法则,避免对象之间的直接交互,尽可能使用中间对象进行交互。

    14310

    小谈设计模式(12)—法则

    小谈设计模式(12)—法则 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。...法则 法则(Law of Demeter)也被称为最少知识原则(Least Knowledge Principle),是一种面向对象设计的原则,它强调一个对象应该尽量减少与其他对象之间的相互依赖...遵循法则可以使系统的设计更加模块化,每个对象只需要关注自身的职责,而不需要了解其他对象的内部细节。这样可以降低系统的复杂性,提高代码的可读性和可维护性。...同时,法则也有助于提高系统的可扩展性,因为减少了对象之间的直接依赖,新增功能时只需要修改少量的对象即可。...总结 法则强调了对象之间的松耦合设计,通过减少对象之间的直接依赖,提高系统的灵活性和可维护性。遵循法则可以使系统更加模块化、可扩展和易于测试。

    21830

    6大设计原则之法则

    法则的定义 法则也称为最少知识原则,一个对象应该对其他对象有最少的了解....法则对类的低耦合提出了要求 1.只和朋友交流 什么是朋友呢? 出现在成员变量、方法的输入输出参数中的类称为朋友类,而出现在方法体内部的类不属于朋友类....变更引起的风险扩散也就越大.因此,为了保持朋友类间的距离,在设计时需要反复衡量:是否还可以再减少public方法和属性,是否可以修改为private,protected等访问权限,是否可以加上final关键字等,法则要求类尽量不要对外公布太多的...可以坚持这样一个原则: 如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,那就放置在本类中. ---- 法则的核心观念就是类间解耦,弱耦合,只有弱耦合了以后,类的复用率才可以提高....其要求的结果就是产生了大量的中转或跳转类,导致系统的复杂性提高,同时也为维护带来了难度.在采用原则时需要反复权衡,既做到让结构清晰,有做到高内聚低耦合

    48240

    六大设计原则之`法则`

    六大设计原则之法则 定义 法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解...模式与意义 法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。 法则不希望类之间建立直接的联系。...门面模式和调停者模式实际上就是法则的应用。 广义的法则在类的设计上的体现: 优先考虑将一个类设置成不变类。 尽量降低一个类的访问权限。 谨慎使用Serializable。...先来看一下违反法则的设计。...按照法则,应该避免类中出现这样非直接朋友关系的耦合。

    44110

    设计模式 ☞ 七大设计原则之法则

    1.1 概述   法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学的一个名为的研究项目...需要注意的是,过度使用法则会使系统产生大量的中介类,从而增加系统的复杂性,使模块之间的通信效率降低。...所以,在釆用法则时需要反复权衡,确保高内聚和低耦合的同时,保证系统的结构清晰。 1.2 优点  ① 降低了类之间的耦合度,提高了模块的相对独立性。  ...只看结果是没有问题的,但是它不符合法则法则要求只跟朋友说话,其朋友指的是当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等。...法则要求我们类间解耦,但是解耦是有限度的,除非是计算机的最小符号二进制的 0 和 1,那才是完全解耦,我们在实际的项目中时,需要适度的考虑这个法则,别为了套用法则而做项目,法则只是一个参考,违背了法则

    90010

    法则:降低耦合,提升代码质量与可维护性

    文章目录 什么是法则?...法则的原则 代码实践:法则的应用 结论 欢迎来到Java学习路线专栏~探索法则:降低耦合,提升代码质量与可维护性 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒 ✨博客主页:IT·...法则,也被称为“最少知识原则”,在面向对象设计中具有显著的指导作用,其目标在于降低系统内部各模块之间的耦合性,从而提升代码质量和可维护性。 什么是法则?...代码实践:法则的应用 让我们通过一个简单的代码示例来更好地理解法则的应用。 假设我们有一个订单系统,由订单(Order)、顾客(Customer)和商品(Product)三个类组成。...下面我们将展示如何遵循法则,降低类之间的耦合。

    22810
    领券