Иногда нужна не просто утиная типизация, а утиная типизация целого стада. Я добавил такую возможно к DuckTyping (см. метод Aggregate), но что-то мне подсказывает, что этот паттерн имеет другое название. Вопрос. Оставить это как есть или перенести в отдельный класс? В какой?
Вариант использования:
public interface IAggregatable
{
int Method1();
int Method2();
}
public class AggregateClass1
{
public int Method1() { return 1; }
}
public class AggregateClass2
{
public int Method2() { return 2; }
}
[Test]
public void AggregateTest()
{
IAggregatable duck = DuckTyping.Aggregate<IAggregatable>(new AggregateClass1(), new AggregateClass2());
Assert.AreEqual(1, duck.Method1());
Assert.AreEqual(2, duck.Method2());
}