读书笔记----设计模式之美09

为什么基于接口而非实现编程?有必要为每个类都定义接口吗?

1. 重要内容

1.1 提高抽象封装意识

“基于接口而非实现”,这条原则的另外一个表述方式,是“基于抽象而非实现编程”。这条设计原则的初衷是要我们在开发编码的过程中一定要有抽象意识、封装意识、接口意识。越抽象、越顶层、越脱离具体某一实现的设计,越能提高代码的灵活性、扩展性、可维护性。

1.2 接口命名

在定义接口的时候,一方面,命名要足够通用,不能包含跟具体实现相关的字眼,另一方面,与特定实现有关的方法不要定在接口里面。

1.3 系统设计

“基于接口而非实现编程”这条原则,不仅仅可以指导非常细节的编程开发,可以指导更加上层的架构设计、系统设计等。比如,服务端与客户端之间的“接口”设计、类库的“接口”设计。

2. 读后思考

问题:那现在的MVC代码,要求service先写接口,然后再写实现,有必要嘛?
个人想法:还是有必要的原因如下:

  1. 大部分情况下,我们去了解业务,基本上是看接口包含了哪些方法,这样就一个这个服务包含了什么行为,直接看实现类的话,代码量大,还包含各种私有方法,阅读起来非常的繁琐没有直接看接口类简单明了;
  2. 从设计的角度来说,一般先定义Controller层与Service层接口,定义请求出参入参结构,配置好参数验证规则,Review评审设计,再更新接口到API文档中心,然后开始写具体实现,这样的话可以提前做到对于整个业务的功能点条理分析,做到先设计再动手可以有效的提高效率和降低返工率;
  3. 基于接口而非实现的做法,很方便对功能点做快速调整或者扩展,通过Spring本身的容器管理实现一些定制化的特殊需求,脱离具体的定制实现而提供通用模块。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值