前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向对象设计原则-迪米特法则

面向对象设计原则-迪米特法则

原创
作者头像
堕落飞鸟
发布2023-05-05 14:45:28
1180
发布2023-05-05 14:45:28
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

概述

迪米特法则(Law of Demeter,简称LoD),也称为最少知识原则(Principle of Least Knowledge,简称PLK),是一个重要的面向对象设计原则,它强调一个软件实体应该尽可能少地与其他实体发生相互作用。这个原则可以避免系统的复杂性和耦合度过高,使得系统更具有可维护性、可扩展性和可重用性。

原理

迪米特法则的核心思想是尽量减少对象之间的交互,使得系统的耦合度降低。它强调了以下两个方面:

  • 一个对象应该对其他对象尽可能少地了解。
  • 一个对象不应该直接与其他对象交互,而应该通过一个中间对象来进行交互。

具体来说,迪米特法则可以被描述为以下三个要点:

  • 只与直接的朋友通信。一个对象应该只与它直接的朋友通信,而不是跟“陌生人”说话。所谓直接的朋友是指以下几种对象:它本身、它的实例变量、方法的参数、方法内部创建的对象以及其它直接调用的对象。
  • 不要向外泄露过多的信息。一个对象不应该将它内部的信息向外泄露,这样会降低系统的可维护性和可扩展性。应该尽可能地封装对象内部的信息,只暴露必要的方法和属性,让外界尽可能少地了解对象的内部实现。
  • 尽量少使用静态成员。静态成员不属于对象,而属于类。使用静态成员会使得对象的交互变得更加复杂,降低系统的可扩展性。

迪米特法则的目的是将一个系统分解成更小的、更简单的部分,使得每个部分可以独立地进行开发和维护。它可以有效地降低系统的复杂度和耦合度,提高系统的可维护性和可扩展性。

应用

迪米特法则可以应用于以下几个方面:

  • 系统设计:在系统设计阶段,应该尽可能地减少对象之间的交互,避免将不相关的对象耦合在一起。应该将系统分解成更小、更简单的部分,使得每个部分可以独立地进行开发和维护。
  • 类设计:在类设计阶段,应该尽可能地封装对象的内部信息,只暴露必要的方法和属性,避免将对象的内部实现细节暴露给外界。同时,一个类不应该直接与其他类交互,而应该通过一个中间对象来进行交互。
  • 模块设计:在模块设计阶段,应该将模块分解成更小、更简单的部分,使得每个部分可以独立地进行开发和维护。同时,不同模块之间的交互应该尽可能地减少,避免将不相关的模块耦合在一起。
  • 代码编写:在代码编写阶段,应该尽可能地遵守迪米特法则,避免对象之间的直接交互,尽可能使用中间对象进行交互。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 原理
  • 应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档