较低级别的抽象可以依赖于较高级别的抽象吗?假设我有一个名为getAudioFileInfo(id)
的方法,该方法应该从服务器获取有关具有指定ID的音频文件的一些信息。更高的抽象级别接口提供了所需信息的列表。在getAudioFileInfo中调用此方法是否正确?还是将所需信息列表作为参数传递会更好?
最好将列表传递给较低级别的函数,或者将较低级别的函数拆分为更集中的函数,这些函数每个仅返回一个信息值,然后将结果组合到较高级别的函数。
但是也请注意,这并不意味着您应该针对每个基准向服务器发出多个请求,因为这些请求可能会很昂贵。因此,也许您获得了所有数据,但仅返回了相关数据。这对于第一种选择更有意义。
通常,在同一个层或下一个较低层中请求内容,并提供所需的内容。请参阅我在分层体系结构中写的here。