设计模式六大原则——迪米特法则(LoD)

简介: <h1><span style="font-size:24px">    1、背景</span></h1> <p><span style="font-size:24px">  </span><span style="font-size:18px">   在图书馆借书,刚开始的时候,直接跑到相应的楼层去,到里面去转,去找要借的书,在里面溜达半天才能找到;后来知道图书馆有一个电脑查询处,然后

    1、背景

     在图书馆借书,刚开始的时候,直接跑到相应的楼层去,到里面去转,去找要借的书,在里面溜达半天才能找到;后来知道图书馆有一个电脑查询处,然后直接在电脑上输入想要借的书,电脑就会显示你想要借的书的信息,还有所在的相关楼层存放的相关位置。

      

   

    2、定义

     迪米特法则(Law of Demeter)又叫作最少知识原则(LKP,Least Knowledge Principle),就是说一个对象应当对其他对象有尽可能少的了解,类与类之间的了解的越多,关系越密切,耦合度越大,当一个类发生改变时,另一个类也可能发生变化。

  核心思想:最少依赖

  具体体现:

  • 类内部应该高内聚,设置相应的权限,有选择的暴露方法,这就是封装的奥秘。
  • 类的依赖关系尽量减少,保持简单和独立,降低耦合。

  有些东西,可以适当的知道,知道的太多对你不好。关系越复杂,人越不敢接近你。要达到很高的内修养,才能有很好的表现。

  

  3、设计模式中的具体应用

  1)、门面(外观)模式

   如果一个子系统内部的对象构成自己的朋友圈,而子系统外部 对象都属于陌生人的话,那么子系统外部的对象与内部的对象就不应当直接通信,而应当通过一个双方都认可的朋友,也就是门面对象进行通信,这就导致了门面模式。

 

   2)、中介者模式

   这里一些对象形成一个中等规模的朋友圈,而圈内很多的对象都有排列组合般的交互作用。这时,可以通过创造一个大家共有的朋友对象,然后大家都通过这个朋友对象发生相互作用,而将相互之间的直接相互作用省略掉,这就导致了中介者模式。

  

    3、规则建议

    在类的划分上,应当创建弱耦合的类,类与类之间的耦合越弱,就越有利于实现可复用的目标。

   在类的结构设计上,每个类都应该降低成员的访问权限。

   在类的设计上,只要有可能,一个类应当设计成不变的类。

   在对其他类的应用上,一个对象对其他类的对象的应用应该降到最低。尽量限制局部变量的有效范围。

 
相关文章
|
14天前
|
设计模式 Java 程序员
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
本系列文章聚焦于面向对象软件设计中的设计模式,旨在帮助开发人员掌握23种经典设计模式及其应用。内容分为三大部分:第一部分介绍设计模式的概念、UML图和软件设计原则;第二部分详细讲解创建型、结构型和行为型模式,并配以代码示例;第三部分通过自定义Spring的IOC功能综合案例,展示如何将常用设计模式应用于实际项目中。通过学习这些内容,读者可以提升编程能力,提高代码的可维护性和复用性。
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
|
5月前
|
设计模式
设计模式七大原则
这篇文章介绍了设计模式中的七大原则,特别强调了单一职责原则,即一个类应该只有一个引起其行为变化的原因,以确保类功能的高内聚和低耦合。
|
5月前
|
设计模式 存储 前端开发
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
|
4月前
|
设计模式 Java 关系型数据库
设计模式——设计模式简介和七大原则
设计模式的目的和核心原则、单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则
|
5月前
|
设计模式 算法 开发者
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
|
5月前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
|
5月前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是设计模式,单一职责原则如何理解
React开发设计模式及原则概念问题之什么是设计模式,单一职责原则如何理解
|
7月前
|
设计模式 uml
设计模式学习心得之前置知识 UML图看法与六大原则(下)
设计模式学习心得之前置知识 UML图看法与六大原则(下)
50 2
|
7月前
|
设计模式 Java 数据库
深入理解设计模式六大原则
深入理解设计模式六大原则
|
8天前
|
设计模式 前端开发 搜索推荐
前端必须掌握的设计模式——模板模式
模板模式(Template Pattern)是一种行为型设计模式,父类定义固定流程和步骤顺序,子类通过继承并重写特定方法实现具体步骤。适用于具有固定结构或流程的场景,如组装汽车、包装礼物等。举例来说,公司年会节目征集时,蜘蛛侠定义了歌曲的四个步骤:前奏、主歌、副歌、结尾。金刚狼和绿巨人根据此模板设计各自的表演内容。通过抽象类定义通用逻辑,子类实现个性化行为,从而减少重复代码。模板模式还支持钩子方法,允许跳过某些步骤,增加灵活性。