Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сложное наследование классов / 15 сообщений из 15, страница 1 из 1
08.06.2015, 23:23
    #38979621
rigorMortis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
Привет
Затрудняюсь как сделать в DOT.NET. Схематически абстрактные классы выглядят так:

Код: plaintext
1.
2.
3.
4.
5.
6.
                                  
                                             base
                                            /    \
                                   processed      organized
                                            \    / 
                                             full

То есть абстрактные классы processed и organized наследуют от общего абстрактного класса base. Далее, full должен содержать реализацию processed и organized, но класс не может наследовать от более чем одного абстрактного класса. Как быть тут? Архитектура предполагает что существуют классы, содержащие реализацию или processed или organized по отдельности, а так же класс со всеми реализациями - full.
...
Рейтинг: 0 / 0
08.06.2015, 23:26
    #38979623
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
rigorMortis,

Использовать агрегацию классов или интерфейсы.
...
Рейтинг: 0 / 0
09.06.2015, 00:11
    #38979640
rigorMortis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
Relic Hunter, как здесь могут помочь интерфейсы?
...
Рейтинг: 0 / 0
09.06.2015, 00:46
    #38979652
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
rigorMortisкак здесь могут помочь интерфейсы?интерфейс - это чистый абстрактный класс
rigorMortisЗатрудняюсь как сделать в DOT.NETникак. не нравится - пишите на c++
...
Рейтинг: 0 / 0
09.06.2015, 01:01
    #38979655
rigorMortis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
Изопропил, интерфейс содержит только сигнатуру методов, а здесь речь идёт о наследовании реализации, так что интерфейсы не подходят.
...
Рейтинг: 0 / 0
09.06.2015, 01:05
    #38979656
rigorMortis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
rigorMortisинтерфейс - это чистый абстрактный класс
Интерфейс это интерфейс, а не абстрактный класс.
rigorMortisникак. не нравится - пишите на c++
Скажите это моему работодателю
...
Рейтинг: 0 / 0
09.06.2015, 02:40
    #38979671
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
Изопропилпишите на c++
Проще уволить того кто придумал такую иерархию ))
...
Рейтинг: 0 / 0
09.06.2015, 08:52
    #38979721
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
ну и нафига такое нужно?
наследуйте Base-Org-Proc-Full и получится тоже самое, ну или в той последовательности, как вам нужно.
...
Рейтинг: 0 / 0
09.06.2015, 10:04
    #38979781
RocknRolla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
А что мешает использовать композицию классов processed & organized для получения full ?
...
Рейтинг: 0 / 0
09.06.2015, 12:37
    #38980054
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
rigorMortisПривет
Затрудняюсь как сделать в DOT.NET. Схематически абстрактные классы выглядят так:

Код: plaintext
1.
2.
3.
4.
5.
6.
                                  
                                             base
                                            /    \
                                   processed      organized
                                            \    / 
                                             full

То есть абстрактные классы processed и organized наследуют от общего абстрактного класса base. Далее, full должен содержать реализацию processed и organized, но класс не может наследовать от более чем одного абстрактного класса. Как быть тут? Архитектура предполагает что существуют классы, содержащие реализацию или processed или organized по отдельности, а так же класс со всеми реализациями - full.

Так никак, нужно множественное наследование.

Во всех этих ущербных недоязыках, где его нет, нужно base, processed и organized делать интерфейсами,
а потом в full делать реализацию всего, что от них унаследовано (возможно, в виде делегации кому-то, но это неважно).
...
Рейтинг: 0 / 0
09.06.2015, 13:37
    #38980132
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
MasterZiv
Так никак, нужно множественное наследование.

Во всех этих ущербных недоязыках, где его нет, нужно base, processed и organized делать интерфейсами,
а потом в full делать реализацию всего, что от них унаследовано (возможно, в виде делегации кому-то, но это неважно).
Есть языки где вообще нет никакого наследования, С или Erlang или тот же SQL ;)
...
Рейтинг: 0 / 0
09.06.2015, 13:41
    #38980137
Сложное наследование классов
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
class Animal:
    def __init__(self, name):
        self.name = name

    def say(self):
        raise Error("I can't say")


class Cat(Animal):
    def meow(self):
        print("meow")


class Dog(Animal):
    def bark(self):
        print("woof")


class CatDog(Cat, Dog):
    def say(self, what):
        print("LOL I can say.", what)


catdog = CatDog('CatDog')
catdog.meow()
catdog.bark()
catdog.say('xyiz')
 
...
Рейтинг: 0 / 0
09.06.2015, 15:58
    #38980275
rigorMortis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
Anatoly MoskovskyИзопропилпишите на c++
Проще уволить того кто придумал такую иерархию ))
Особенно когда ничего толкового сказать не получается.
...
Рейтинг: 0 / 0
09.06.2015, 19:46
    #38980510
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
rigorMortisОсобенно когда ничего толкового сказать не получается.
ответили - никак
...
Рейтинг: 0 / 0
09.06.2015, 20:04
    #38980525
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложное наследование классов
ЕвгенийВMasterZivТак никак, нужно множественное наследование.

Во всех этих ущербных недоязыках, где его нет, нужно base, processed и organized делать интерфейсами,
а потом в full делать реализацию всего, что от них унаследовано (возможно, в виде делегации кому-то, но это неважно).
Есть языки где вообще нет никакого наследования, С или Erlang или тот же SQL ;)

да, и заметь, это все хорошие языки...
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сложное наследование классов / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]