Технически, C # реализует множественное интерфейс наследование, но не множественное
реализация наследование.
Проблема с множественным наследованием реализации заключается в том, что оно приводит к
такие ситуации, как проблема алмазов .
Вы можете моделировать множественное наследование реализации, используя несколько интерфейсов.
наследственность и состав, который близок к тому, что вы описали как создание
объекты, которые вы хотите повторно использовать "в качестве объектов-членов". Чего ты не хочешь
чтобы сделать, однако, выставить ненужное поведение от вашего упакованного типа.
Ниже приведена диаграмма классов, показывающая основной принцип множественного
наследование по составу:
Множественное наследование http://www.freeimagehosting.net/uploads/cb219cefba.jpg
Недостатком этого является то, что любые изменения интерфейса IBreeper потребуют
соответствующие изменения в Breeper, и наоборот.
Делая шаг назад - вам нужно внимательно изучить причины
сочинять старые классы. Это к:
Улучшение или усиление существующего поведения. Затем вы должны рассмотреть Proxy Pattern ;
Создайте "универсальный магазин" для всего вашего поведения. Вы действительно должны делать это только в том случае, если ваш SuperFuddler является связным (то есть все выставленное поведение выровнено), в противном случае вы перейдете в Объект Бога ситуация, которая не способствует тому, чтобы ее можно было обслуживать;
Представьте интерфейс, который больше соответствует режиму использования, необходимому для определенного класса клиентов вашего SuperFuddler. В этом случае вы должны рассмотреть Pattern Adapter .