我有一个应用程序,它使用两个不同的接口,每个接口定义一个方法。方法名称和返回的结果相同,但输入参数不同。
示例:
//Interface A
public interface IPropertyTypifier
{
IEnumerable<ProbabilityScore> CalculateProbabilities(
AccessAddress accessAddress,
AddressKey targetKey);
}
//Interface B
public interface INameTypifier
{
IEnumerable<ProbabilityScore> CalculateProbabilities(string name);
}
我有几个实现此接口的类,然后将它们添加到另一个包含这些列表的类中:
public class TypificationService
{
public IEnumerable<IPropertyTypifier> PropertyTypifiers { get; set; }
public IEnumerable<INameTypifier> NameTypifiers { get; set; }
TypificationResult Typify(AccessAddress accessAddress, AddressKey targetKey, string name)
{
// For each property typifier get result here
// For each name typifier get result here
// Return result
}
}
在这里使用Adapter来创建一个允许我保留一个典型列表的界面是否有意义?或者这种设计是否已经存在缺陷?
答案 0 :(得分:0)
如果这是你需要的所有功能,而不是创建两个不同的接口,我会创建一个接口“ProbabilityCalculator”并重载CalculateProbabilities方法。
interface IProbabilityCalculator
{
IEnumerable<ProbabilityScore> CalculateProbabilities(string name);
IEnumerable<ProbabilityScore> CalculateProbabilities(AccessAddress accessAddress, AddressKey targetKey);
}