Какие есть хорошие альтернативы множественному наследованию в .NET?

у меня возникла небольшая проблема с моей иерархией классов в приложении WPF. Это'Это одна из тех проблем, когда у вас есть два дерева наследования, и вы можетенайти логичный способ, чтобы ваше наследство работало гладкобез множественное наследование. Я'Мне интересно, есть ли у кого-нибудь блестящие идеи для того, чтобы заставить работать такую систему, не делая невозможным ее отслеживание или отладку.

Я инженер низкого уровня, поэтому моя первая мысль всегда "Ой! Я'Я просто напишу некоторые из этих классов на нативном C ++, и буду ссылаться на них внешне! Тогда я смогу повеселиться на старой школе! " Увы это непомогает, когда вам нужно наследовать от управляемого элемента управления ...

Позвольте мне показать фрагмент моей текущей проектной диаграммы классов:

 ____________________________________      _____________________________________
| CustomizableObject                 |    | System.Windows.Controls.UserControl |
|____________________________________|    |_____________________________________|
|   string XAMLHeader()              |                        ▲
|   string XAMLFooter()              |◄--┐                    |
|   CustomizableObject LoadObject()  |   \                    |
|    |    \                   |
|____________________________________|     \                  |
         ▲                      ▲           \                 |
         |                      |            \                |
         |                      |             \               |
 _________________    ______________________   \    _____________________
| SpriteAnimation |  | SpriteAnimationFrame |  └---| CustomizableControl |
|_________________|  |______________________|      |_____________________|
                                                      ▲             ▲
                                                      |             |
                                                      |             |
                                                  ________    _____________
                                                 | Sprite |  | SpriteFrame |
                                                 |________|  |_____________|

Проблема довольно ясна: разделение деревьев объектов CustomizableObject и CustomizableControl --- и вставка UserControl в одно, но не в оба дерева.

Не имеет практического смысла перемещать реализацию CustomizableObject в его производные классы, так как реализация не 'т варьируется в зависимости от класса. Кроме того, было бы очень сложно реализовать его несколько раз. Так что я действительно нене хочу сделать CustomizableObject интерфейсом. Интерфейсное решение нене имеет никакого смысла для меня. (Интерфейсы имеютникогда действительно, для меня было много смысла, если честно ...)

Так что еще раз говорю, у кого-нибудь есть яркие идеи? Вот этот'настоящий рассол. Я'Я хотел бы узнать больше о том, как заставить интерфейсы работать с моим деревом объектов, а не против него. Я'Я делаю этот простой движок спрайтов, используя WPF и C # как серьезное упражнение, больше всего на свете. Это очень легко решить в C ++, но мне нужно выяснить, как решить эти проблемы в управляемой среде, вместо того, чтобы бросать руки в воздух и бегать обратно к Win32, когда дела идут плохо.

Ответы на вопрос(5)

Ваш ответ на вопрос