当前位置: 首页 > news >正文

C# Unity 面向对象补全计划 七大原则 之 依赖倒置原则 (DIP)难度:☆☆ 总结:多抽象,多接口,少耦合

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正
本系列作为七大原则和设计模式的进阶知识,看不懂没关系

请看专栏:http://t.csdnimg.cn/mIitr,查漏补缺

1.依赖倒置原则 (DIP)

这个原则的核心思想是:高层模块不应该依赖于低层模块,二者都应该依赖于抽象,具体来说,依赖倒置原则建议我们通过依赖抽象(如接口或抽象类)而不是具体实现来降低模块之间的耦合度

什么叫依赖?

依赖可以理解为耦合,就是两个类之间有互相套用的关系

举个不恰当的栗子

我有一台电脑,键盘模块和鼠标模块会互相影响, 比如我按WASD就会让浏览器中的鼠标发生移动,理论上来说这种操作是可行的

问题来了:那我该怎么打字?所以该种情况就显然不符合依赖倒置原则

这样子影响,显示不太合适,那么就应该依据依赖倒置原则 (DIP),用接口或者抽象类去继承实现一个抽象层-------输入接口

修改后

public interface InputInterface{protected void Click();protected void Move();protected void Input();}
public class Mouse : InputInterface {void InputInterface.Click() {}void InputInterface.Input() {}void InputInterface.Move() {}
}public class Keyboard : InputInterface {void InputInterface.Click() {}void InputInterface.Input() {}void InputInterface.Move() {}
}

这个接口还可以用 接口隔离原则,将键盘鼠标的不同行为分离开来C# & Unity 面向对象补全计划 七大原则 之 接口隔离原则 (ISP) 难度:☆ 总结:大接口分成小的,然后该干啥干啥-CSDN博客

我就不过多赘述了 

http://www.lryc.cn/news/415959.html

相关文章:

  • 大模型面试问题
  • keeplive配置详解与haproxy配置详解
  • vivado里的LUT、LUTRAM、FF、BRAM、DSP、IO、BUFG、MMCM资源介绍
  • window关闭端口占用
  • Java:类和对象
  • Pandas数据分析案例之用户购买记录分析
  • 串口调试可能遇见的常见问题和排查方法
  • 运放学习提纲
  • nvidia系列教程-AGX-Orin系统刷机及备份
  • 将 Mojo 与 Python 结合使用
  • Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
  • js与ios、安卓原生方法互调。
  • C++——多态经典案例(二)制作饮品
  • 内网域森林之ProxyNotShell漏洞利用
  • SpringBoot基础 第一天
  • 【C/C++】C语言和C++实现Stack(栈)对比
  • mysql定时备份脚本
  • 云原生 (1)
  • gitlab-pages创建静态站点
  • Python爬虫技术 案例集锦
  • 实战OpenCV之环境安装与配置
  • Android应用开发面试之Jetpack面试题分析汇总
  • 【数据结构】栈的概念、结构和实现详解
  • LeetCode 每日一题 2024/7/29-2024/8/4
  • Golang死锁vs操作系统死锁
  • c/c++中π怎么定义
  • 基于whisper流式语音识别
  • Web3 市场暴跌的时候,哪些token跌的少,哪些还涨了? binance 数据爬取及分析
  • ffmpeg获得视频的音频文件
  • Robot Operating System——深度解析单线程执行器(SingleThreadedExecutor)执行逻辑