首页 > 其他分享 >读书随笔(三)(3)

读书随笔(三)(3)

时间:2023-02-25 13:33:07浏览次数:39  
标签:依赖 接口 抽象 读书 模块 倒转 抽象类 随笔

三、依赖倒转原则
1、目的
避免需求变化导致过多的维护工作

2、定义
高层模块不应该依赖底层模块,二者都应该依赖其抽象;
抽象不应该依赖细节;
细节应该依赖抽象。
每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块(一般是接口,抽象类),原子逻辑的组装就是高层模块。在Java语言中,抽象就是指接口和或抽象类,两者都不能被直接实例化。细节就是实现类,实现接口或继承抽象类而产生的类就是细节,可以被直接实例化。

3、具体实现
面向接口编程,使用接口或者抽象类制定好规范和契约,而不去设计任何具体的操作,把展现细节的任务交给他们的实现类去完成。

4、DIP的好处
采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。

5、DIP的几种写法
(1)接口声明依赖对象;

(2)构造函数传递依赖对象;

在类中通过构造函数声明依赖对象(好比spring中的构造器注入),采用构造器注入。

(3)Setter方法传递依赖对象

在抽象中设置setter方法声明依赖对象(spring中的方法注入)

6、深入理解
依赖倒转原则的本质就是通过抽象使各个类或模块实现彼此独立,不互相影响,实现模块间的松耦合。

在项目中使用这个规则需要以下原则:

(1)每个类尽量都要有接口或抽象类:依赖倒转的基本要求,有抽象才能依赖倒转;

(2)变量的表明类型尽量是接口或者抽象类;

(3)任何类都不应该从具体类派生;

(4)尽量不要重写基类已经写好的方法(里氏替换原则);

(5)结合里氏替换原则来使用:

接口负责定义public属性和方法,并且声明与其他对象的依赖关系;

抽象类负责公共构造部分的实现;

实现类准确的实现业务逻辑,同时在适当的时候对父类进行细化;

一句话,依赖倒转原则就是面向接口编程。

标签:依赖,接口,抽象,读书,模块,倒转,抽象类,随笔
From: https://www.cnblogs.com/producer-319/p/17154248.html

相关文章

  • 《巴黎圣母院》——读书笔记
    前言:《巴黎圣母院》以离奇和对比手法写了一个发生在15世纪法国的故事:巴黎圣母院副主教克洛德道貌岸然、蛇蝎心肠,先爱后恨,迫害吉ト赛女郎埃斯梅拉达。面目丑陋、心地善良......
  • 2023/2/24每日随笔
    今天,上了一天的课,很累,也收获了不少,英语口语课上的很有意思,老师听不懂我,我听不懂老师,自己写的句子里有着很多熟悉但写不出来的单词,比如population,reduce,common,relieve,receiv......
  • test随笔
    数据结构与对象数据结构1.简单动态字符串​ C语言使用长度为N+1长度的字符数组来存放长度为N的字符串,且在字符数组的最后一个元素总是空字符"\0"。而在Redis中C字符串自......
  • <<运维监控系统实战笔记>> 小记随笔 —— Prometheus 初识
    Prometheus简介Prometheusserver包含时序库、告警引擎、数据展示三大块,体系中最核心的组件Exporters采集数据的客户端,负载采集数据存在内存中,提供http接口,让......
  • 《设计模式之禅》 第一章随笔(单一职责原则)
    只要做过項目,肯定要接触到用户、机构、角色管理这些校块,基本上使用的都是RBAC模型(Role-BasedAccessControl,基于角色的访问控制,通过分配和取消角色来完成用户权限的授予......
  • 每日随笔2023/2/23
    今天就上了个体育课,然后就没了,体育课累得不行,考试了,考的不错,应该70多,没白练。然后回来打扫了下卫生,晚上就学习了AndroidStudio,学习了一些控件,边听边打,周六差不多可以学习......
  • Java核心技术读书笔记-输入与输出
    IO流InputStream与OutputStream设计的目的是处理字节流的数据;而Reader和Writer是专门用于处理Unicode字符的类层次结构。read和write方法在执行时都将阻塞,直至字节确实......
  • 构建之法读书笔记二
    第二章个人技术和流程2.1单元测试①重要的单元测试:有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得......
  • 关于tomCat 部署到阿里云linux中不能访问随笔记录
    一、首先查看服务器的端口号是否开放1.首先看一下服务器内部防火墙有没有开启以及有没有开启80或者8080端口号:命令:firewall-cmd--list-ports如有则显示如下图片:2.......
  • 读书笔记:价值投资.十三.对长期持有的误解
    对长期投资的误解我总觉得价值投资就应该长期持有的说法是对价值投资的误解.误解最大的莫过于"长期持有就是价值投资".但是,买到了便宜的好股票最好不轻易出手.只......