模块间接口设计的原则
一,简单原则。所谓简单,主要体现在模块接口的使用方法 上,模块的使用者在不借助或借助很少的文档的情况下,就可以轻松使用模块所提供的功能。这首先要求接口方法的命名要规范,每个对外提供的方法名都应该有意 义,让使用者可以通过名称猜测到方法的主要用途;其次要求接口中的相关参数的数据类型要尽可能的简单,尽量少使用嵌套层次多的数据结构,必要时可以构建全局应用的内存环境来保存模块间共同使用的数据,同时在这个内存环境之上提供不同数据的操作方法,从而减少模块间直接性的复杂数据的传递;其三,模块接口的方法尽可能单一,设计模式中的工厂模式是一种不错的选择。
二,封闭原则。封闭原则要求的的是,模块功能的实现细节要完全对外封闭,而且在对模块内部的处理逻辑进行修改时,不会影响模块使用者的调用逻辑。
三,完整性原则。做为功能模块,它所提供的功能应该是一个全面的整体,一些具有细微差别的功能应该被集中到一个模块中,这样我们可以方便利用继承、重载、覆写等技术手段来提高代码复用率,同时也可以提升模块使用的灵活度。
四,可置换原则。我们很难保证一个功能模块所提供的功能会永不过时,因此在接口设计时应该尽可能的应用接口编程思想,为接口提供标准的接口规范,这样将来可以轻松的用遵循接口规范的新的模块置换原有的模块,而不会影响其到他相关模块的调用方式。
转载于:https://www.cnblogs.com/phonegap/archive/2008/12/14/2535929.html
模块间接口设计的原则相关推荐
- 软件接口设计 六大原则
转载自 http://www.cnblogs.com/zfc2201/p/3423370.html 一.单一职责原则 Single Responsibility Principle, 简称SRP. 定 ...
- 软件接口设计 六大原则
转载自 http://www.cnblogs.com/zfc2201/p/3423370.html 一.单一职责原则 Single Responsibility Principle, 简称SRP. 定 ...
- 数据结构 -- 可重用模块的接口设计模板
以下以链表为例子,仔细体会代码模块化设计的思想以及代码规范. /*************************************************** * Coperight (C) ...
- 【设计模式】软件设计七大原则 ( 接口隔离原则 | 代码示例 )
文章目录 一.接口隔离原则简介 二.接口隔离原则代码示例 ( 反面示例 ) 1.接口定义 ( 接口臃肿 ) 2.实现类 1 3.实现类 2 三.接口隔离原则代码示例 ( 推荐用法 ) 1.接口 1 2 ...
- 耦合性:软件系统结构中各模块间相互联系紧密程度的一种度量
简介 耦合性也叫块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息 ...
- 【校招VIP】[约起来] 接口设计1:图片上传接口
今天来看商业实战项目约起来的第一个模块,活动发布模块的接口设计,这期课程包括两个接口,一个是图片上传,一个是活动发布后的提交. 首先了解图片上传接口,常规的图片上传需要前后端配合.前端通过接口传给后端 ...
- 图解模块间7种耦合关系
一.高内聚与低耦合 高内聚与低耦合是每个软件开发者追求的目标,那么内聚和耦合分别是什么意思呢? 内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事.它描述的是模块内的功能联系. 耦合 ...
- 16. 设计模式之契约原则:如何做好 API 接口设计?
一.契约式设计原则:API 设计的指导书 无论是架构设计还是编码实现,现在都越来越离不开接口设计,接口可以说是新时代的"集装箱",是得到了几乎所有人一致共识的通用标准. GoF 在 ...
- 腾讯技术分享:微服务接口设计原则
来源|腾讯技术工程(ID:Tencent_TEG) 本文结合自身后台开发经验,从高可用.高性能.易维护和低风险(安全)角度出发,尝试总结业界常见微服务接口设计原则,帮助大家设计出优秀的微服务. 1.前 ...
最新文章
- RayTracking 光线跟踪算法
- navigationbar
- 温故(2):pass by value
- 软件设计最近发展趋势对话录
- Hangfire 任务调度
- linux 信号_Linux信号机制
- python 单链表查找元素_如何在python中一次找到链表的中间元素?
- [翻译] InstagramPhotoPicker
- Ubuntu18.04安装Android Studio
- jQuery的AJAX请求中contentType和dataType的区别
- 简易sql词法分析器和语法分析器
- C64+系列DSP的总结
- 数据库中反引号的作用
- matlab对比度拉伸,[转载][数字图像处理学习]分段线性变换函数——对比度拉伸...
- python (语音)信号拆分为数据块,计算短期能量和过零率
- PHP 8.1.0-dev后门复现
- 安装 xorg-macros
- 自然数e这家伙怎么蹦跶出来的?
- 一款可扩展跨平台网络安全工具套件CaptfEncoder
- python人狗大战游戏_python面向对象-----组合的题目 定一个人狗大战 并且用面向对象的组合知识...