其实吧,接口这东西。。我举个例子来说,你如果正在写业务代码,考虑着业务逻辑,这时候突然需要访问底层与业务无关的东西,而这个底层的东西你又得花很多时间去思考。这样你就得中断对业务逻辑的思考,跳到底层实现中去,实现完底层这么复杂的一个东西之后,也许你又得从头开始思考业务逻辑,思考刚才做到哪了。
其实这是面向过程的思考方式了——坏处就是一次需要考虑太多东西,思维还做了2次(或者更多次)跳跃。
如果有接口这么个东西,你就可以先不考虑底层的实现,写个接口,直接调用这个接口,继续业务逻辑的编写,完了之后再去实现这个接口,这样
思维就不用那么跳跃,代码质量应该会相对高一些,写程序也轻松些。这就是我理解的所谓“分离关注点”。
再想想生活中的东西,其实也很好理解,比如说usb接口,生产主板的只要做出这么个接口,不去理睬usb的另一端具体的实现(比如可以有u盘呀、键盘呀、数码相机等等),专注于主板这个领域,那么他的产品质量应该会相对高些吧,因为专业,所以XX。。。
接口其实就是个规范,定制好这个规范后,比如USB的规范:2根数据线、2根电源线(其实我也不是很清楚USB具体的规范,这里只是打个比方),然后需要与usb连接的数据设备产商按着这个规范来做就ok了。
不说硬件领域,回头看编程领域,在写业务逻辑的时候,定制了底层的接口(其实就是定制你需要调用的方法,比如说一个
嘎嘎叫的方法——
静态语言如果不另外定义接口,这时候像Eclipse这样的编译器就会出现红杠杠,编译不通过,而动态语言就不会,所以我说动态语言有自然而然的接口,因为它不需要编译),然后放着不管它,等写完业务逻辑,再去考虑底层,或者也可以把底层交给更专业的人实现。
至于“切换不同的实现”,我觉得属于接口的
副作用吧。
分享到:
相关推荐
第5章:Windows_应用程序编程接口API第5章:Windows_应用程序编程接口API第5章:Windows_应用程序编程接口API第5章:Windows_应用程序编程接口API第5章:Windows_应用程序编程接口API第5章:Windows_应用程序编程...
针对接口编程的使能工具
《农行网上支付平台-商户接口编程指南-Java Edition-V3.1.7》是一份由农业银行开发的针对开发者和商户的编程指南,用于指导如何通过Java语言接入并使用农行的网上支付平台进行交易处理。这份指南覆盖了接口的详细...
在深入探讨SCSI接口编程时,我们首先要知道的是SCSI(Small Computer System Interface,小型计算机系统接口)是一种标准的并行总线接口技术,广泛应用于各种计算机硬件设备之间,如硬盘驱动器、光驱、磁带机等。...
5. **硬件/软件接口**:讲解如何通过汇编语言编程,以及如何在硬件和操作系统之间建立有效的交互。 6. **RISC-V扩展**:RISC-V架构允许模块化的ISA扩展,使得开发者可以根据需求添加浮点运算、向量处理等功能。 7....
在本文中,我们将深入探讨基于MVC架构的权限设计,特别是在使用依赖接口编程技术的上下文中。MVC(Model-View-Controller)模式是软件工程中广泛采用的设计模式,尤其适用于构建Web应用程序。它将应用逻辑划分为三个...
语言与MATLAB接口——编程与实例内容简介本书以简洁的语言、丰富的实例系统地介绍了C语言与MATLAB接口函数(称之为:C-MEX函数)的编程方法。用实例详细地介绍了MATLAB中所提供的数据类型在C-MEX函数的编程方法。这些...
计算机组成与设计硬件软件接口risc-v中文版
其目的在于通过量化方法研究金融市场的运作机制,评估金融资产的价值,并对投资风险进行管理。MATLAB(Matrix Laboratory的缩写),作为一款强大的数学计算软件,它拥有广泛的数学函数库,以及丰富的算法工具箱,...
大家要是觉得不错,可以下载我整理得另一套资源:VS2010+MFC编程入门,也是鸡啄米的,写得不错,通俗易懂! --------------------------完整目录如下------------------- 第一部分:C++编程概述 鸡啄米:C++编程...
《单片机原理及接口技术(C51编程)》是张毅刚教授的经典教材,主要针对想要深入理解和掌握单片机系统设计的读者。在本教程中,张毅刚教授详细介绍了单片机的基本原理、C51编程语言以及各种常见的接口技术,旨在帮助...
本文旨在深入浅出地介绍如何利用VC++进行串口编程,并重点解析其中的核心API——`CreateFile`函数及其相关参数。 #### 二、基础知识概述 在开始具体的编程之前,我们需要了解一些关于串口的基础知识: 1. **串口*...
通过解决这些习题,学习者能够加深对并行计算的理解,提升实际操作能力。 5. **性能分析与优化**: 在并行计算中,性能分析至关重要,这涉及到性能模型的建立、性能瓶颈的识别和性能优化策略的选择。学习者可能...
### 深入浅出Linux_设备驱动编程 #### 知识点概览 本文将围绕《深入浅出Linux_设备驱动编程》这一主题展开详细论述。设备驱动程序是操作系统与硬件之间的桥梁,负责实现软件对硬件的访问,并提供统一的操作接口。...
这是《竹林蹊径--深入浅出Windows内核驱动开发》的三章试读内容,算是官方发布吧。内容是:第二章(64位编程)、第六章(内核C++)、附录2(虚拟机调试)。 本书由China-pub首发,目前在当当和淘宝上都有卖。价格低...
3. **跨平台性**:虽然世恒易语言最初是针对Windows系统开发的,但它也逐渐扩展到了其他操作系统,如Linux。 4. **丰富的库支持**:世恒易语言拥有大量的内置库和第三方库,可以满足不同领域的开发需求。 5. **面向...
7. 事件驱动编程:QQ自动回复系统往往采用事件驱动模式,当接收到新消息时触发一个事件,然后执行相应的处理逻辑。C#中的委托和事件机制非常适合这种编程模型。 8. 日志记录:为了调试和追踪程序运行状态,日志记录...
- **RS232计算机接口:**通过该接口可以对编程器进行功能设置、软件升级以及目标代码的更新操作。 - **JTAG目标板接口:** - **功能:**支持程序写入及熔丝烧断操作。 - **定义:**接口定义需参考具体文档。 - **...
6轴机械手是一种广泛应用在工业自动化领域的机器人,它由六个连杆组成,能够实现多维度的空间运动。在6轴机械手的设计与控制中,正解和...通过实际操作和测试,不仅可以提升编程技能,还能增进对机器人控制理论的掌握。
端设备(DTE)之间的接口标准,主要用于串行通信。在Visual C++中进行串口编程,你需要了解以下几个核心概念: 1. **串口通信基础**:串口通信是一种通过串行数据传输的方式进行设备间通信的技术。在PC中,最常见的...