Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поменять класс у существующего объекта / 25 сообщений из 47, страница 1 из 2
27.02.2012, 22:41
    #37681207
U-gene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Интересно, где-нибудь такая возможность реализована?

Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому.

ps.
Ну или был квадрат - стал прямоугольником

Код: plaintext
1.
2.
------------------------------
!Напрасный труд хуже пьянства!
------------------------------
...
Рейтинг: 0 / 0
28.02.2012, 00:16
    #37681287
black raven
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
В смолтоке кажись, можно, а в cecil есть predicate classes. Можно сказать типа квадрат-это такой прямоугольник у которого стороны равны
...
Рейтинг: 0 / 0
28.02.2012, 00:46
    #37681309
black raven 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-geneИнтересно, где-нибудь такая возможность реализована?

Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому.

ps.
Ну или был квадрат - стал прямоугольником

Код: plaintext
1.
2.
------------------------------
!Напрасный труд хуже пьянства!
------------------------------


В чем проблема движения по иерархии вверх, если любой объект по определению есть и может использовать как базовый? Вот "сильно" изменить класс объекта, эту уже интересно.

Хотя описание у тебя мутное, можешь попробовать поковыряться в этой теории: http://dl.acm.org/citation.cfm?id=230540 С практической точки зрения, сломать жесткую иерархию наследования, можно с помощью traits или mixins.
...
Рейтинг: 0 / 0
28.02.2012, 01:00
    #37681316
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-geneИнтересно, где-нибудь такая возможность реализована?

Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому.

ps.
Ну или был квадрат - стал прямоугольником

Код: plaintext
1.
2.
------------------------------
!Напрасный труд хуже пьянства!
------------------------------

а зачем?
покажи пример на псевдокоде.

з.ы. в крайнем случае - можно приведение типов сделать.
...
Рейтинг: 0 / 0
28.02.2012, 01:51
    #37681330
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-geneИнтересно, где-нибудь такая возможность реализована?

Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому.

ps.
Ну или был квадрат - стал прямоугольником

JS! =)))
Если конечно не учитывать встроенные типы.
...
Рейтинг: 0 / 0
28.02.2012, 02:45
    #37681361
U-gene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Зачем это нужно.

Тут наверно издалека надо начинать,что бы контекст вопроса стал понятен.

Контекст заключается в том, что у меня есть система, где класс является множеством объектов в прямом смысле этого выражения. То есть я могу обратившись к классу, получить доступ к конкретному объекту (в т.ч. получить ссылку на объект) по каким-то атрибутам.

В этом контексте операция развития объекта (назовем ее так) приобретает тот смысл, что объект явно включается в подкласс. Совсем конкретный пример - переход от заказа к отгрузке... или что то типа того. Заказ - он как был так и остается. Если он входил в какие-то группы, он там так и есть. если на него были ссылки - их трогать не надо. интерфейс объекта не меняется. Но после "развития" это же заказ можно использовать как объект класса отгрузка. на него могут ссылаться как на отгрузку, он может входит в другие списки (куда могут входить отгрузки) и т.д.

Смысл операции КМК слово "развитие" очень хорошо передает.

С учетом того, что возможно множественное наследование, такая операция становится еще более интересной. Например класс отгрузка наследует помимо заказа еще и класс запись в фин книге. Получается, что при развитии объекта заказ в сторону отгрузки этот объект становится еще и объектом класса запись в фин книге. А это - уже совсем сбоку класс. То есть, с множественным наследованием, операция "развитие объекта" работает уже не только вверх по иерархии, но и во все стороны, которые в этой иерархии участвуют.
...
Рейтинг: 0 / 0
28.02.2012, 04:59
    #37681378
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-gene,
...
Рейтинг: 0 / 0
28.02.2012, 05:07
    #37681379
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Наследование - только один аспект. "Является"
Множественного наследования - абсурд. Чек не является ногой, а нога никак не чек. "Имеет отношение к ... в контексте ... "
...
Рейтинг: 0 / 0
28.02.2012, 08:28
    #37681415
k0rvin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-geneИнтересно, где-нибудь такая возможность реализована?
В CLOS например.
...
Рейтинг: 0 / 0
28.02.2012, 08:32
    #37681418
k0rvin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
ZyK_BotaNз.ы. в крайнем случае - можно приведение типов сделать.

Думаю, для динамически типизированных языков не прокатит. Да и не в каждом статическом это возможно. Например в Java, на сколько я знаю, простым приведением этого не сделать, точнее бессмысленно делать, т.к. все равно будут вызываться наиболее специфичные для фактического класса объекта методы.
...
Рейтинг: 0 / 0
28.02.2012, 12:01
    #37681765
U-gene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Вот эта картинка - она к чему? что на значит?
И какое отношение человеческие ноги к наследованию?

Самое главное - я не собираюсь спорить о смыслах и об абсурдности. Кому то не нравится множественное наследование, а кто-то наоборот уверен, что только оно имеет смысл. Я задал конкретный вопрос про конкретную операцию, которую можно сделать. а какой смысл в нее будут вкладывать - их дело.
...
Рейтинг: 0 / 0
28.02.2012, 12:26
    #37681824
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
k0rvinZyK_BotaNз.ы. в крайнем случае - можно приведение типов сделать.

Думаю, для динамически типизированных языков не прокатит.
я про явное приведение. можно у объекта метод определить "конвертировать в предка", который будет возвращать предка.
...
Рейтинг: 0 / 0
28.02.2012, 14:57
    #37682242
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-geneВот эта картинка - она к чему? что на значит?

В картинке ясно видн как Типы "Процессоры процесса расчетного" стали типами "Процессоры процесса нормативного"
т.е. множественная классификация
...
Рейтинг: 0 / 0
28.02.2012, 15:09
    #37682279
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Объект -> Тип
. .....
. Тип -> Класс
. .......
. Класс -> Класс
. .......
. Класс -> ...
...
Рейтинг: 0 / 0
28.02.2012, 15:10
    #37682286
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
формат съехал, но смысль понятна вроде
...
Рейтинг: 0 / 0
28.02.2012, 15:46
    #37682399
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Даже если бы у меня был под рукой язык, позволяющий на лету менять тип объекта, я бы не стал с ним связываться.
Ведь главное, что требуется - вносить в разные списки, а для этого никакой класс менять не надо. Вноси себе и все.
Вот если одновременно требуется нарастить функциональность (добавить полей, например), то немного репу почесать придется, но все равно делал бы на мэйстриме, а не на экзотике.
Моделировал бы объект как набор слотов, соответстующих подтипу. Подтипы делегируют обращения к элементам суперкласса, если у себя не находят. На ум приходит javascript с прототипированием, но множественного наследования он все равно не потянет, так что лучше моделировать самому. Если писать на Java или C++? то эффективносить исполнения и будет примерно на уровне javascript.
...
Рейтинг: 0 / 0
28.02.2012, 18:08
    #37682927
U-gene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
rfgвносить в разные списки, а для этого никакой класс менять не надо
главный список - это сам класс. объект там есть по умолчанию.
класс - это множесто объектов.
...
Рейтинг: 0 / 0
28.02.2012, 18:18
    #37682949
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
Об чём тут толкуют? Об апкастинге? Или снова наследуют шар от круга?
...
Рейтинг: 0 / 0
28.02.2012, 18:40
    #37682992
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-generfgвносить в разные списки, а для этого никакой класс менять не надо
главный список - это сам класс. объект там есть по умолчанию.
класс - это множесто объектов.
объект может быть в разных классах одновременно :)
...
Рейтинг: 0 / 0
28.02.2012, 18:49
    #37683007
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
это буч все перепутал, назвав свой КОП ООПом.
...
Рейтинг: 0 / 0
29.02.2012, 01:04
    #37683381
U-gene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
что такое алкастинг?

но если я правильно понял - то ни капли не алкастинг.

думаю причина вопросов в том, что мало где реализована простая идея "класс - это множестов объектов". класс используют как фабрику объектов, но что бы организовать множество вводят всякие коллекции, экстенты и тд.

То есть для класса существует операция NEW имя_класса(парарметры_конструктора) ,что подразумевает создание нового объекта, но нет операции GET имя_класса (параметры_отбора_объекта) , что подразумевает получение ссылки на уже существующий объект. В существующих системах единственны способ сохранить доступ к объекту - сохранить ссылку на него (в эктенте, коллекции или как то еще). Как только ссылка потеряна - доступа к объекту утерян тоже.

Мой исходный вопрос интересен в контексте системы где такая операция GET есть. Объясню почему. Она позволяет ввести существующий объект в новый класс, а потом получить ссылку на него уже как на объект нового класса. Это подразумевает статический контроль типов. И это абсолютно не то,что мы можем обращаться к объекту класса-наследника по интерфейсу предка.
...
Рейтинг: 0 / 0
29.02.2012, 02:25
    #37683415
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-geneчто такое алкастинг?
...
Рейтинг: 0 / 0
29.02.2012, 03:48
    #37683434
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
U-gene,

блабла
тебе уже 10 раз показал где это реализовано и намного круче чем ты думаешь
...
Рейтинг: 0 / 0
29.02.2012, 11:14
    #37683731
U-gene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
2 VipRos
да не показал ты ничего. я тебе таких скринов в экселе нарисую десять за час. Ты хоть раз где-нибуть связно мне объяснил, о чем ты говоришь? ссылку дал на доки, на описание или еще на что? Нет.
поэтому я тебя воспринимаю сугубо как тролля, извини. ну ладно... пусть будет тролль с понятиями. в смысле - термины знаешь.

2 mayton
Ржать конечно легче чем думать. Но, уважаемый, я, задав Вам вопрос об алкастинге, как-то сразу перешел на статический контроль типов. То есть, подумавши, можно сделать вывод что речь идет не об одном и том же.... ну, если вы понимаете что такое тип и его статический контроль, ибо all casting это механизм сильно динамический и затратный.
...
Рейтинг: 0 / 0
29.02.2012, 12:20
    #37683896
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поменять класс у существующего объекта
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поменять класс у существующего объекта / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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