设计功能模块时如何平衡模块提供的功能的普适性和特适性

使模块具有一定通用性,能降低总系统的复杂度。
越底层的模块,抽象程度应越高(越普适),它应致力于解决特定领域的一类问题,而非一个特别具体的问题。

在实际设计模块时,可以考虑至少分3层。
1.低(不易变动):提供各种基础功能
2.中(易变动,大部分情况下和表现层是同步变化的):将基础功能组合起来(功能的二次封装),设计其方法的依据是适用于当前实际的具体需求(目的是降低上层调用者的认知负荷)
3.高(表现层,易变动):一种特定的展示和控制逻辑功能的形式。不关注具体功能的实现细节,只需关注
在合适的情境下调用特定功能
根据功能执行结果播放相关表现

在进行软件设计时要频繁进行的决策行为:决定谁在什么时候需要知道什么内容,对该内容的了解达到什么程度。用准确的表述方式,让各角色能尽量明确地知道自己应知晓的内容。

在设计功能模块时,通过自问自答下列问题,来平衡该模块的普适性和特适性

1.能涵盖当前所有需求的最简单的接口是什么?

尽量避免造出太多的接口。
造出太多接口很可能是因为其功能特适性太高了,可以通过将该模块再分层来解决。
注意!将多个接口合并为一个接口,通过参数来区分具体使用哪个接口的功能。这种减少接口数量的方式是意义不大的,因为它本质上还是提供了这么多的接口,并没有减少使用者的认知负荷。可以考虑提供同名,但所需参数数量不同的接口,来对实现同一功能的接口做出分层(模块自己为各层提供默认参数)

2. 哪些情境下会用到该接口?

不要设计只适用于特定情境的接口。
可尝试用参数来区分情境。

3.当前接口能否让使用者尽可能容易(理解成本低,使用时不易出错)地达成自己的需求
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容