【发布时间】:2019-12-25 15:47:41
【问题描述】:
低级抽象可以依赖于高级抽象吗?
假设我有一个名为 getAudioFileInfo(id) 的方法,它应该从服务器获取有关具有指定 ID 的音频文件的一些信息。所需信息列表由更高抽象级别的接口提供。在 getAudioFileInfo 中调用此方法是否正确?还是将所需信息列表作为参数传递会更好?
【问题讨论】:
标签: oop abstraction
低级抽象可以依赖于高级抽象吗?
假设我有一个名为 getAudioFileInfo(id) 的方法,它应该从服务器获取有关具有指定 ID 的音频文件的一些信息。所需信息列表由更高抽象级别的接口提供。在 getAudioFileInfo 中调用此方法是否正确?还是将所需信息列表作为参数传递会更好?
【问题讨论】:
标签: oop abstraction
最好将列表向下传递到较低级别的函数,或者将较低级别的函数拆分为更集中的函数,每个函数只返回一个信息值,然后在更高级别的函数中组装结果。
但也要考虑到这并不意味着您应该为每个数据向服务器发出多个请求,因为请求可能很昂贵。所以也许你得到了所有的数据,但只返回相关的。这对于第一个选项更有意义。
通常在同一层或下一个较低层中要求东西,并给他们他们需要的东西。看看我在分层架构中写的here。
【讨论】: