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

面向对象的程序设计:以对象的方式进行思考

1 理解接口与实现的区别

以上一篇文章的电视机需要插电使用的例子继续来讲解:

对电视而言,插电使用,只需要标准的插座即可,具体的电从哪里来,是火力发电厂,或是太阳能发电,亦或是畜电池逆变供电,电视机是不需要关心的。

发电厂或供电设备属于实现,220V交流电插座属于接口。改变实现不会对电视机的使用产生影响,而改变接口则会。

  • 接口:呈现给外部使用的服务属于接口,进一步将,只需要呈现需要使用的接口。
  • 实现:实现的细节对外部是进行隐藏的,对代码编写来说,修改实现是不需要变动用户代码的。

2 使用抽象思维设计接口

面向对象编程的一大优势,是可以重用类,而这些可重用的类,接口通常比较抽象。

  • 具体接口:功能明确
  • 抽象接口:通用性高

举个例子:创建一个出租车对象,有抽象接口(送到机场)和具体接口(左转、右转、启动、停止)

对于抽象接口,送到机场,不管是在哪座城市,哪个位置,都可以到达机场,只是具体的路径可能会不一样。

<

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

相关文章:

  • 酵母三杂交实验全解析:从技术到应用【泰克生物】
  • Git 分支合并
  • C# 以管理员方式启动程序全解析
  • CSS:语法、样式表、选择器
  • python轻量级框架-flask
  • SQL和MySQL以及DAX的日期表生成?数字型日期?将生成的日期表插入到临时表或者实体表中
  • 文件下载时利用redis的队列模式顺序下载文件,防止多文件任务下载导致OOM
  • 第13章:Python TDD完善货币加法运算(二)
  • 两份PDF文档,如何比对差异,快速定位不同之处?
  • ESP-Skainet语音唤醒技术,设备高效语音识别方案,个性化交互应用
  • 地图:nuxt3高德地图简单使用 / nuxt2 + amap
  • 走进DevOps:让开发与运维齐头并进
  • 力扣动态规划-5【算法学习day.99】
  • LLM(3) : 浏览器录制16K的音频并上传到后端
  • PyTorch使用教程(13)-一文搞定模型的可视化和训练过程监控
  • 服务器日志自动上传到阿里云OSS备份
  • 树莓派学习
  • NestJS中实现注入多个实现了同一个接口的Service
  • Qt按钮美化教程
  • 基于单片机的多功能蓝牙语音智能台灯(论文+源码)
  • 第15章:Python TDD应对货币类开发变化(二)
  • 算法随笔_13: 有效三角形的个数
  • WSL 2 自动更新 虚拟 IP 到 window hosts
  • 我在广州学Mysql 系列——触发器的使用
  • 【useCallback Hook】在多次渲染中缓存组件中的函数,避免重复创建函数
  • 2025/1/20 学习Vue的第三天
  • Kotlin Bytedeco OpenCV 图像图像49 仿射变换 图像裁剪
  • 金融项目实战 07|Python实现接口自动化——连接数据库和数据清洗、测试报告、持续集成
  • (快速入门)保姆级详细的 Midjourney 基础教程
  • leetcode——找到字符串中所有字母异位词(java)