使模块具有一定通用性,能降低总系统的复杂度。
越底层的模块,抽象程度应越高(越普适),它应致力于解决特定领域的一类问题,而非一个特别具体的问题。
在实际设计模块时,可以考虑至少分3层。
1.低(不易变动):提供各种基础功能
2.中(易变动,大部分情况下和表现层是同步变化的):将基础功能组合起来(功能的二次封装),设计其方法的依据是适用于当前实际的具体需求(目的是降低上层调用者的认知负荷)
3.高(表现层,易变动):一种特定的展示和控制逻辑功能的形式。不关注具体功能的实现细节,只需关注
在合适的情境下调用特定功能
根据功能执行结果播放相关表现
在进行软件设计时要频繁进行的决策行为:决定谁在什么时候需要知道什么内容,对该内容的了解达到什么程度。用准确的表述方式,让各角色能尽量明确地知道自己应知晓的内容。
在设计功能模块时,通过自问自答下列问题,来平衡该模块的普适性和特适性
1.能涵盖当前所有需求的最简单的接口是什么?
尽量避免造出太多的接口。
造出太多接口很可能是因为其功能特适性太高了,可以通过将该模块再分层来解决。
注意!将多个接口合并为一个接口,通过参数来区分具体使用哪个接口的功能。这种减少接口数量的方式是意义不大的,因为它本质上还是提供了这么多的接口,并没有减少使用者的认知负荷。可以考虑提供同名,但所需参数数量不同的接口,来对实现同一功能的接口做出分层(模块自己为各层提供默认参数)
2. 哪些情境下会用到该接口?
不要设计只适用于特定情境的接口。
可尝试用参数来区分情境。
网友评论