С учетом принципа DRY, как бы вы решали практически одинаковые методы (с разными сигнатурами), которые работают с IEnumerable. То есть одна подпись работает с определенным параметром типа. Мой вопрос распространяется на вызов частных методов и их множественные подписи.Принцип DRY при работе с несколькими сигнатурами методов
Я не хочу иметь два метода с одинаковой логикой. Если что-то меняется, я должен изменить оба набора логики. Вызывающий частных методов, например, как я могу сделать частный способ принять любой тип IEnumerable
public class Person
{
public string Name {get; set;}
public string Age {get; set;}
}
public class SupremeBeing : Person
{
public string Power {get; set;}
}
public class Payroll
{
public void DoSomething(IEnumerable<Person> peopleIn)
{
// Do this with peopleIn
// Do that with peopleIn
// Call private method passing in peopleIn (which also has 2 signatures)
}
public void DoSomething(IEnumerable<SupremeBeing> peopleIn)
{
// Do this with peopleIn
// Do that with peopleIn
// Call private method passing in peopleIn (which also has 2 signatures)
}
}
И вопрос в том, что? – Jamiec
Вы можете задать вопрос, добавив здесь вопрос. –
Возможно, вы можете использовать какую-то абстракцию, как вы изначально имеете с вашей схемой наследования. Таким образом, вы можете свести к одному методу, используя самый абстрактный IEnumerable. –