我正在设计一个 API。以下是来自接口的一些示例方法:
Entry findEntry(int processId);
Entry findEntry(int processId, Filter filter);
whereprocessId
指的是一些唯一的识别信息。但是我真的不知道它的类型processId
是什么。
我怎样才能抽象出某个元素之类id
的东西?
我能想到的最好的方法是创建一个虚拟接口:
Entry findEntry(ProcessId id);
Entry findEntry(ProcessId, Filter filter);
但是,我担心使用上述方法可能会迫使 API 的客户端在过高的抽象级别上运行。例如,进程 id 的相等性将不再起作用(而如果他们使用 int's - 它会)。
澄清:我没有澄清我只写接口(合同),稍后可能由不同的团队实现。这就是为什么我不能强制执行某些事情,比如 equals 方法。