Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 05:09
Оценка:
У меня есть две библиотеки компонент. Я хочу создать свой базовый от базовых компонент двух этих библиотек. Как лучше всего поступить?
Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 05:24
Оценка:
Базовый от двух базовых создать никак не получится.
Нужно будет делать свой базовый, который будет агрегировать в себе оба нужных класса и перенаправлять вызовы методов к ним.
Т.е.

class Lib1Class
{
public void MethodA();
}

class Lib2Class
{
public void MethodB();
}

class YourBaseClass
{
Lib1Class l1c = new Lib1Class();
Lib2Class l2c = new Lib2Class();

public void MethodA()
{
l1c.MethodA();
}

public void MethodB()
{
l2c.MethodB();
}
}

Можно унаследоваться от одного, а другой агрегировать
SUNETA


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 05:44
Оценка:
А у меня оба базовых от UserControl. C этим проблем не будет?
Re: Отсутствие множественного наследования
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.05 06:07
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>У меня есть две библиотеки компонент. Я хочу создать свой базовый от базовых компонент двух этих библиотек. Как лучше всего поступить?

Повеситься
Точнее, надо смотреть в каждом конкретном случае. Не очень понятно, что ты понимаешь под "свой базовый".
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 06:06
Оценка:
Проблем точно не будет, если унаследоваться от UserControl и агрегировать оба объекта. В принципе получается стандартная ситуация создания UserControl. Можно сделать это прямо с помощью дизайнера студии
SUNETA


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 06:22
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:


А>>У меня есть две библиотеки компонент. Я хочу создать свой базовый от базовых компонент двух этих библиотек. Как лучше всего поступить?

S>Повеситься
Это пока рано делать
S>Точнее, надо смотреть в каждом конкретном случае. Не очень понятно, что ты понимаешь под "свой базовый".
Ну я от этого контрола буду делать все свои проиводные..
Re: Отсутствие множественного наследования
От: MCSD.NET  
Дата: 13.10.05 07:30
Оценка:
Здравствуйте, k_savelev, Вы писали:

_>Базовый от двух базовых создать никак не получится.

_>Нужно будет делать свой базовый, который будет агрегировать в себе оба нужных класса и перенаправлять вызовы методов к ним.
_>Т.е.

_>class Lib1Class

_>{
_> public void MethodA();
_>}

_>class Lib2Class

_>{
_> public void MethodB();
_>}

_>class YourBaseClass

_>{
_> Lib1Class l1c = new Lib1Class();
_> Lib2Class l2c = new Lib2Class();

_> public void MethodA()

_> {
_> l1c.MethodA();
_> }

_> public void MethodB()

_> {
_> l2c.MethodB();
_> }
_>}

_>Можно унаследоваться от одного, а другой агрегировать


Это скорее композиция нежели чем просто агрегация.
Re[3]: Отсутствие множественного наследования
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.05 08:08
Оценка:
Здравствуйте, <Аноним>, Вы писали:
А>Ну я от этого контрола буду делать все свои проиводные..
Это, конечно, хорошая идея. Но зачем тебе наследоваться от обоих базовых? Чтобы можно было передавать его куда-то в эти библиотеки?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 08:06
Оценка:
Я конечно могу жестоко ошибаться, но в приведённом мной примере композиция осуществляется с помощью агрегации...
Т.е. подразумевается, что объекты l1c и l2c создаются во время создания экземпляра класса YourBaseClass и уничтожаются во время его уничтожения
Поправьте меня, пожалуйста, если что, чтобы я не путал Анонима
SUNETA


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 08:14
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:

А>>Ну я от этого контрола буду делать все свои проиводные..
S>Это, конечно, хорошая идея. Но зачем тебе наследоваться от обоих базовых? Чтобы можно было передавать его куда-то в эти библиотеки?

Нет. У одного красивый внешний вид. У другого хорошая функциональность.....
Re[2]: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 08:14
Оценка:
_>>Можно унаследоваться от одного, а другой агрегировать

MN>Это скорее композиция нежели чем просто агрегация.


А примерчеком не поделитесь? Желательно к моей задачи
Re[2]: Отсутствие множественного наследования
От: MCSD.NET  
Дата: 13.10.05 08:21
Оценка:
Здравствуйте, k_savelev, Вы писали:

_>Я конечно могу жестоко ошибаться, но в приведённом мной примере композиция осуществляется с помощью агрегации...

Композиция — частный случай агрегации.

_>Т.е. подразумевается, что объекты l1c и l2c создаются во время создания экземпляра класса YourBaseClass и уничтожаются во время его уничтожения

Именно поэтому приведенный тобой пример скорее композиция нежели чем просто агрегация.

_>Поправьте меня, пожалуйста, если что, чтобы я не путал Анонима

Поправил
Re[3]: Отсутствие множественного наследования
От: MCSD.NET  
Дата: 13.10.05 08:28
Оценка:
Здравствуйте, Аноним, Вы писали:

_>>>Можно унаследоваться от одного, а другой агрегировать


MN>>Это скорее композиция нежели чем просто агрегация.


А>А примерчеком не поделитесь? Желательно к моей задачи

Пример вам привел k_savelev. А мой комментарий относится не к "Можно унаследоваться от одного, а другой агрегировать", а к примеру кода k_savelev.
Если вы имеете ввиду пример смешанных композиции и наследования, то на мой взгляд так вообще лучше никогда не делайте. Слишком "грязный" результат. Ни упрощения, ни оптимизации архитектуры вы от этого не получите.
Re[5]: Отсутствие множественного наследования
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.05 12:03
Оценка:
Здравствуйте, <Аноним>, Вы писали:
А>Нет. У одного красивый внешний вид. У другого хорошая функциональность.....
Увы. Даже если бы множественное наследование было, хрен бы ты взял от одного внешний вид, а от другого функциональность...
Это все равно, как ожидать получения TreeGridView путем наследования от TreeView и GridView
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Отсутствие множественного наследования
От: Аноним  
Дата: 13.10.05 12:50
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, <Аноним>, Вы писали:

А>>Нет. У одного красивый внешний вид. У другого хорошая функциональность.....
S>Увы. Даже если бы множественное наследование было, хрен бы ты взял от одного внешний вид, а от другого функциональность...
S>Это все равно, как ожидать получения TreeGridView путем наследования от TreeView и GridView

Да я понимаю....Просто тему так назвал......Просто основная проблема в том, что если мне использовать агрегирование то как мне делать. У меня оба компонента, производные от UserControl. Если я делаю свой, производный от UC а внутри его создаю по экземпляру требуемых классов. То как мне зделать чтобы мой класс красиво выглядел? Ведь выглядит красиво внутренний. Такой же вопрос и по функциональности.....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.