考慮到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 2015-02-11 12:19:03
在這裏添加問題可以使問題更好。 – 2015-02-11 12:20:11
也許你可以使用某種抽象,就像你最初的繼承方案一樣。這樣你就可以減少到一個採用最抽象IEnumerable的方法。 – 2015-02-11 12:20:31