Author: Anders小明
任何一个有一定规模系统,通常会把系统做一定分解降低分析设计开发的难度,模块划分是一个比较常见的方式。
而在模块的划分,及其分析设计的实践中,模块和模块的交互接口最为重要,通常我们认为这些接口应该通用稳定,然而如何设计每个模块对外提供的接口却是一个不易的问题。
实践中,极有可能出现两种状况:接口维护失控或者过严而死板(而影响开发)。接口失控是因为接口的维护太过随意,因为A模块的需要就轻易在B模块中添加一个接口(方法),导致该接口(方法)非独立性(基本上只给模块A的这个功能点使用),或者是接口的控制过严,导致或者工作效率不高,或者接口的易用性不好。
原因在于:接口是两个模块间的耦合,而发生的种种问题在于模块耦合太过紧密;同时实践中,把模块对外提供的接口,与模块需要实现的外部模块的接口混为一谈。
根据指导原则:为了降低耦合只有在中间加一层。一种可行的实践是:不轻易为模块设计对外提供的接口(方法),除非是通过重构得来的;模块对外提供两种类:一个是需要外部模块实现的接口(接口设计从本模块需要出发,当然每个接口尽管是为某个功能点服务,但也要注意其在模块内通用性),另一个是其它模块要求本模块实现的接口的实现类。
即:A模块拥有一些需要B模块实现的接口(A模块对B模块的要求),而B模块中也有要求A模块实现的接口,因而A有这些接口的实现类。
这种实践方式的好处在于:模块的接口就多了一层隔离降低了耦合,把接口的通用性和接口的适应性分离,又明确了模块的边界,使得接口在日后的优化和调整有了缓冲。
分享到:
相关推荐
基于C8051F410的液晶显示模块接口设计与实现,王雪琴,赵振纲,本文以C8051F410单片机与CA12832D的接口设计为例,详细介绍了中文图形点阵液晶显示模块与单片机的硬件接口设计方案,并给出了串行模式�
C8051F单片机与RT12864M液晶显示模块接口设计,陈建权,丁彦闯,介绍了RT12864M带汉字库的液晶显示模块与C8051F020单片机的两种接口方式。分析了在5V系统中C8051Fxxx的电平转换原理,给出了硬件原理图以�
### CAN总线通用接口模块设计的关键知识点 #### 1. CAN总线概述 - **定义**: 控制器局域网(Controller Area Network, CAN)是一种支持分布式控制或实时控制的串行通信网络,广泛应用于汽车制造、工业自动化、医疗...
在电子工程领域,复杂模块接口的设计是至关重要的,尤其是在通信技术日新月异的时代。接口设计的挑战在于处理多样化的接口协议,如USB和PCI,这些接口标准虽然被广泛使用,但新的接口协议不断出现,以满足不同性能、...
3. **模块接口设计**:模块间的交互通过接口进行,接口设计清晰明了至关重要。接口应定义明确的操作和数据,提供稳定的服务,并尽量减少对其他模块的依赖。 4. **模块扩展性**:考虑到未来可能的需求变化和技术升级...
综上所述,用户模块接口设计涵盖了身份验证、权限控制、用户交互、安全策略、API设计等多个方面,是构建安全、高效、用户友好的系统的基础。在实际开发中,需要结合业务需求和用户体验,综合运用各种技术和方法来...
软件管道仿真系统控制模块接口设计是指对软件管道仿真系统控制模块中的接口定义,包括接口的类型、格式、协议等方面的内容。该设计的主要目的是确保软件管道仿真系统控制模块中的各个组件能够正确地交互,实现高效的...
1. 模块接口设计:机器人模块化设计的关键是设计标准的接口,以便于模块之间的组合。 2. 模块尺寸参数确定:确定每个模块的尺寸参数,以便于机器人的设计和制造。 3. 模块装配技术:机器人模块化设计需要具备高效的...
标题中的“基于MINI PCIE-3G模块接口板Cadence16.3...通过深入研究这些文件,可以提升对硬件设计的理解,特别是对于那些希望在嵌入式系统、通信模块接口设计或PCB设计领域提升技能的学习者来说,这是一个宝贵的资源。
4. **SPI模块接口设计**: - 在这个项目中,"SPI_M4模块接口"是指在Cortex-M4处理器上的SPI接口设计。这包括初始化SPI控制器、配置模式(如主/从,极性,相位等)、设置波特率以及中断处理等。接口设计应确保与FPGA...
COM Express模块接口规范(2.1版本)定义了COM Express模块的物理特性、电气特性、thermal设计、安装和测试等方面的要求,以确保COM Express模块的互操作性和可靠性。COM Express模块的应用前景非常广阔,满足各种...
前端调用的接口设计则确保了前端与后台交互的安全性和效率。用户在首页上操作,如浏览模块列表、点击进入编辑界面、新增或删除模块,这些行为都通过接口实现。例如,当用户点击列表中的一行,接口会根据选定的模块...
车票管理系统的详细设计主要包括数据结构设计、模块接口设计和流程图设计。 数据结构设计 车票管理系统的数据结构设计主要包括: * 车票信息结构体:定义车票信息的结构体 * 车票信息数组:定义车票信息的数组 ...
机票预订系统详细设计说明书 本机票预订系统详细设计说明书旨在对机票预订系统进行详细...该方案涵盖了系统架构、系统功能、系统设计、算法设计、数据结构设计、模块接口设计、数据库设计、界面设计和系统测试等方面。
3. **模块接口设计**:学习如何设计清晰、简洁的模块接口,使模块间的交互更为简单和直观,降低理解和实现的难度。 4. **模块的依赖管理**:探讨如何有效地管理模块间的依赖关系,避免循环依赖和不必要的跨模块引用...
在软件开发过程中,接口设计和界面设计是两个至关重要的环节,它们直接影响到用户的使用体验和系统的可维护性。本文将详细探讨这两个主题。 首先,我们来讨论“接口设计”。接口设计是软件系统中不同组件之间交互的...
本篇文章将深入探讨两种常见的模块接口API设计方案:面向对象的接口设计与函数式编程的接口设计。这两种设计方法各有特点,适用于不同的场景。 一、面向对象接口设计 面向对象接口设计是基于类和对象的概念,通过...