我有一个接口/抽象类,其中实现可以支持任意大小的字典Name
,identifier
. 每个实现都将具有不同的格式,identifier
具体取决于实现。
调用者需要Name
从提供者那里检索 s 列表,并使用这些列表来询问用户他关心哪个。用户可以选择一个或多个。
我考虑了以下设计,其中调用者获取一个名称数组并通过传入一个整数数组来设置用户的选择,识别用户选择的名称的数组索引。
public abstract String[] GetNames();
public abstract void SetNamesToUse(int[] names);
对此不满意,我还考虑了一个传递对象列表的模型:
public class NameObject {
public bool SelectedByUser;
public String Name;
private String ProviderSpecificData;
}
...
public abstract List<NameObject> GetNames();
public abstract void SetNamesToUse(List<NameObject> names);
这对呼叫者来说似乎更干净、更容易。
我还有什么其他选择?你是如何解决类似问题的?