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

为什么要采用“接口 - 抽象类 - 实现类”这种三层结构? - 浪矢

目录
  • 核心思想
  • 各层职责与优势
    • 第一层:接口 (Interface) - 负责“定义契约”,实现“解耦”
    • 第二层:抽象类 (Abstract Class) - 负责“封装通用”,实现“复用”
    • 第三层:实现类 (Implementation Class) - 负责“具体业务”,实现“扩展”
  • 总结

最近看一些开源的代码,发现很多设计都是使用“接口 -> 抽象类 -> 实现类”这种三层结构来最终实现一些业务的设计实现,感觉值得一学。

核心思想

总的来说,采用这种三层结构,是为了构建一个高内聚、低耦合、易于扩展和维护的系统。它通过对不同层次的职责进行划分,应用面向对象的多个设计原则,从而能够应对复杂和多变的业务需求。

各层职责与优势

第一层:接口 (Interface) - 负责“定义契约”,实现“解耦”

接口定义了“能做什么”。它只规定了方法签名,不包含任何实现。

它的核心优势是“解耦”。系统的调用方只依赖于这个稳定的接口,而不关心底层具体实现。这样一来,我们就可以在不改动调用方代码的前提下,随意地更换或增加新的实现策略,这让系统变得非常灵活。

第二层:抽象类 (Abstract Class) - 负责“封装通用”,实现“复用”

抽象类负责实现体系内所有子类都需要的通用逻辑和公共流程。

它的核心优势是“复用”。

  • 一方面 它遵循了 DRY (Don't Repeat Yourself) 原则,将公共代码提取出来,避免了在每个实现类中重复编写,大大降低了维护成本。
  • 另一方面 通过模板方法模式,它还能定义一个固定的算法骨架,确保所有子类都遵循一个规范、正确的处理流程。

第三层:实现类 (Implementation Class) - 负责“具体业务”,实现“扩展”

实现类负责的是最具体、最核心的业务逻辑。每个实现类都应该有单一的职责。

它的核心优势是“扩展”。这完美体现了“开闭原则”。当我们需要增加一种新的业务实现时,我们只需要新增一个实现类,而不需要修改任何已有的代码。

总结

所以,总结来说,这套“接口 -> 抽象类 -> 实现类”的结构,并不是过度设计,通过这三者的协同工作,我们可以构建出一个职责清晰、扩展性强、维护成本低的健壮系统.

接口解耦了“调用”与“实现”。

抽象类复用了“通用”与“流程”。

实现类隔离了“变化”与“稳定”。

http://www.hskmm.com/?act=detail&tid=25000

相关文章:

  • 对外提供 AI 服务的风险:合规视角与 AI 安全围栏落地指南
  • VScode C/C++ 汉化 竞赛版 只需下载扩展 (超简单)
  • 网络安全工具与社区讨论月报
  • 机器人运动未来与人机交互研究
  • 欧拉路径 欧拉图 小记
  • OI 笑传 #16
  • cf296b
  • 第一次使用Ttpora
  • Apache反向代理
  • 原版 Sunshine+虚拟显示器实现熄屏串流
  • 2025国庆Day4
  • gis坐标计算
  • day17 课程()
  • NKOJ全TJ计划——NP11744
  • ROIR 2025
  • trick 小记
  • python编写AI生常用匡架及使用指令集
  • 123123
  • 1005模拟赛总结
  • 2025.10.5 2024CCPC郑州
  • 20250531MATLAB三维绘图 - 教程
  • 概率期望dp 复习笔记
  • 2025.10
  • PCIe扫盲——物理层逻辑部分基础(一)
  • 仅需3%训练数据的文本归一化技术
  • 价值原语博弈协议:价值原语共识锚定原则
  • 实用指南:工作流引擎-16-开源审批流项目之 整合Flowable官方的Rest包
  • 25fall做题记录-October - Amy
  • 嗯嗯
  • PCIe扫盲——AckNak 机制详解(二)