什么时候应该用通用的函数接口,什么时候应该用具体的函数接口,写程序经常碰到这个问题。
通用接口的好处可能是避免接口过多修改,缺点是内部总是变来变去,而且是不便于阅读。
比如:读书,
读经济类的书,
读《博弈论》
有些人喜欢接口写成: 读书(书的类别,具体的书)。
其中:具体的书,可以为空,为空的时候表示读某类别所有的书;
如果连类别都为空,就是读所有的任何书。
这样关于读书的操作大多数都可以完成。
缺点是不容易理解,人为定义了一些二义性。
我个人人为应该多谢一些具体的函数:
比如: 读某本书(书名)
读某类书(类别名)
读所有的书;
这样的好处是每个函数是具体的,没有二义性的。函数后期的灵活性比较大。
这些基本函数可以和第一类的函数组合在一起,如下:
procedure 读书(书的类别,书的名字)
begin
if 书的名字 <> '' then
读某本书(书的名字)
else if 书的类别 <> '' then
读某类书
else
读所有的书;
end;
太过抽象的接口一般不主张使用。尽量具体。这对整个团队都有好处。