Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / "Динамический полиморфизм" / 14 сообщений из 14, страница 1 из 1
23.03.2010, 06:17:23
    #36535949
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Допустим мне требуется работать с коллекцией значений. Я решил сделать "объект" на все случаи жизни. Получился монструозный класс, в котором даже для пугания воробъев готовится к выстрелу пушка. Хотя, для случая структуры коллекции А - вполне подойдет массив, а для случая структы коллекции Б - связный список, а вот для этого варианта - список с сортировкой и так далее.
Идея какая - сделать объект, который "подстраивает свою сложность" под задачу. Хотелось бы эту идею как то развить. Пока приходит в голову - объект хранящий внутри ссылки на другие объекты и предоставляющий унифицированный интерфейс к их методам через свои стандартизированные.
...
Рейтинг: 0 / 0
23.03.2010, 10:53:27
    #36536256
_мод
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
AlexsalogИдея какая - сделать объект, который "подстраивает свою сложность" под задачу.
Метапрограммирование ?
...
Рейтинг: 0 / 0
23.03.2010, 12:03:25
    #36536492
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Generics programming
...
Рейтинг: 0 / 0
23.03.2010, 13:42:40
    #36536883
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Угу... вгрузился..
...
Рейтинг: 0 / 0
23.03.2010, 22:43:30
    #36538289
ML380
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Классический случай применения паттерна стратегия (policy).
...
Рейтинг: 0 / 0
24.03.2010, 13:26:35
    #36539410
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
ML380,

А вот это еще интереснее. Но в статье которую я нашел это преподносится как "ручная практика" - т.е. - все в руках программиста. Интересно существует какой то подход по "самосборке" объектов? Например из монструозного объекта вырезается все что не требуется и не используется при данной установке свойств.

Понимаю, что вопрос звучит как запуск спутников на просторы большого театра, но вдруг такое существует, а конструкции которые мне видятся - это изобретение велосипеда с квадратными колесами.
...
Рейтинг: 0 / 0
24.03.2010, 14:04:39
    #36539591
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Код: plaintext
interface IEnumerable<T>

С уважением, Naf
...
Рейтинг: 0 / 0
24.03.2010, 15:49:07
    #36540049
ML380
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Alexsalog,
Нельзя вырезать все, что не требуется. Можно только выбрать то, что требуется. Причем, естественно, можно подсунуть и пустую стратегию.
Это можно сделать статически (на этапе компиляции) – шаблоны, или динамически (на этапе выполнения) – полиморфизм.
...
Рейтинг: 0 / 0
24.03.2010, 15:58:05
    #36540110
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Это еще если автор озвучит язык программирования =)

Может у него Бэйсик или Фокспро.
...
Рейтинг: 0 / 0
30.03.2010, 07:14:57
    #36549604
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
А что если хранить данные типа который является родительским для всех остальных, и для каждой записи хранить также название конкретного класса? А при выковыривании уже по этому классу приводить. Реализация зависит от того какой язык использовать.
...
Рейтинг: 0 / 0
30.03.2010, 11:08:58
    #36549943
Пилотажный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Alexsalog Я решил сделать "объект" на все случаи жизни. Получился монструозный класс, в котором даже для пугания воробъев готовится к выстрелу пушка. ...
Идея какая - сделать объект, который "подстраивает свою сложность" под задачу. Хотелось бы эту идею как то развить. Пока приходит в голову - объект хранящий внутри ссылки на другие объекты и предоставляющий унифицированный интерфейс к их методам через свои стандартизированные.

А сами языки программирования Java, Delphi (Delphi как язык, вроде с 6-ой Delphi заявлено было, и уже не Object Pascal), Python, ... и все ООП - с определенной точки зрения и есть этот монстр-класс, если иерархию классов откуда-нибудь из середины за несколько концов встряхнуть, завязать в узел и вытащить узел наверх.
...
Рейтинг: 0 / 0
31.03.2010, 10:02:05
    #36552040
Brian J. Hakim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Абстракт фактори тебе в руки
...
Рейтинг: 0 / 0
31.03.2010, 10:05:33
    #36552049
XDiaBLo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
Brian J. HakimАбстракт фактори тебе в руки
Ему по-моему больше подойдёт динамический язык, типа Питона на самом деле.
...
Рейтинг: 0 / 0
31.03.2010, 19:14:28
    #36553874
k0rvin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Динамический полиморфизм"
AlexsalogДопустим мне требуется работать с коллекцией значений. Я решил сделать "объект" на все случаи жизни. Получился монструозный класс, в котором даже для пугания воробъев готовится к выстрелу пушка. Хотя, для случая структуры коллекции А - вполне подойдет массив, а для случая структы коллекции Б - связный список, а вот для этого варианта - список с сортировкой и так далее.

http://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / "Динамический полиморфизм" / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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