У меня есть приложение, которое использует два разных интерфейса, каждый из которых определяет один метод. Имя метода и возвращаемый результат совпадают, но входные параметры отличаются.
Примеры:
//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 вместо создания интерфейса, который позволяет мне вести единый список типизаторов? Или этот дизайн уже несовершенен?