|
|
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Интересно, где-нибудь такая возможность реализована? Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому. ps. Ну или был квадрат - стал прямоугольником Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2012, 22:41 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
В смолтоке кажись, можно, а в cecil есть predicate classes. Можно сказать типа квадрат-это такой прямоугольник у которого стороны равны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 00:16 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-geneИнтересно, где-нибудь такая возможность реализована? Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому. ps. Ну или был квадрат - стал прямоугольником Код: plaintext 1. 2. В чем проблема движения по иерархии вверх, если любой объект по определению есть и может использовать как базовый? Вот "сильно" изменить класс объекта, эту уже интересно. Хотя описание у тебя мутное, можешь попробовать поковыряться в этой теории: http://dl.acm.org/citation.cfm?id=230540 С практической точки зрения, сломать жесткую иерархию наследования, можно с помощью traits или mixins. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 00:46 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-geneИнтересно, где-нибудь такая возможность реализована? Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому. ps. Ну или был квадрат - стал прямоугольником Код: plaintext 1. 2. а зачем? покажи пример на псевдокоде. з.ы. в крайнем случае - можно приведение типов сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 01:00 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-geneИнтересно, где-нибудь такая возможность реализована? Конечно, речь идет не о том, что меняется любой класс на любой другой класс (это бессмысленно). Но продвигать объект вверх по иерархии наследования, возможно имеет смысл. Например был объект класса заказ, стал отгрузкой. (если класса отгрузка родительский для заказа.). Все связи с этим объектом сохраняются, но он входит в подкласс и может использоваться по новому. ps. Ну или был квадрат - стал прямоугольником JS! =))) Если конечно не учитывать встроенные типы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 01:51 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Зачем это нужно. Тут наверно издалека надо начинать,что бы контекст вопроса стал понятен. Контекст заключается в том, что у меня есть система, где класс является множеством объектов в прямом смысле этого выражения. То есть я могу обратившись к классу, получить доступ к конкретному объекту (в т.ч. получить ссылку на объект) по каким-то атрибутам. В этом контексте операция развития объекта (назовем ее так) приобретает тот смысл, что объект явно включается в подкласс. Совсем конкретный пример - переход от заказа к отгрузке... или что то типа того. Заказ - он как был так и остается. Если он входил в какие-то группы, он там так и есть. если на него были ссылки - их трогать не надо. интерфейс объекта не меняется. Но после "развития" это же заказ можно использовать как объект класса отгрузка. на него могут ссылаться как на отгрузку, он может входит в другие списки (куда могут входить отгрузки) и т.д. Смысл операции КМК слово "развитие" очень хорошо передает. С учетом того, что возможно множественное наследование, такая операция становится еще более интересной. Например класс отгрузка наследует помимо заказа еще и класс запись в фин книге. Получается, что при развитии объекта заказ в сторону отгрузки этот объект становится еще и объектом класса запись в фин книге. А это - уже совсем сбоку класс. То есть, с множественным наследованием, операция "развитие объекта" работает уже не только вверх по иерархии, но и во все стороны, которые в этой иерархии участвуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 02:45 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-gene, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 04:59 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Наследование - только один аспект. "Является" Множественного наследования - абсурд. Чек не является ногой, а нога никак не чек. "Имеет отношение к ... в контексте ... " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 05:07 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-geneИнтересно, где-нибудь такая возможность реализована? В CLOS например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 08:28 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNз.ы. в крайнем случае - можно приведение типов сделать. Думаю, для динамически типизированных языков не прокатит. Да и не в каждом статическом это возможно. Например в Java, на сколько я знаю, простым приведением этого не сделать, точнее бессмысленно делать, т.к. все равно будут вызываться наиболее специфичные для фактического класса объекта методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 08:32 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Вот эта картинка - она к чему? что на значит? И какое отношение человеческие ноги к наследованию? Самое главное - я не собираюсь спорить о смыслах и об абсурдности. Кому то не нравится множественное наследование, а кто-то наоборот уверен, что только оно имеет смысл. Я задал конкретный вопрос про конкретную операцию, которую можно сделать. а какой смысл в нее будут вкладывать - их дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 12:01 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
k0rvinZyK_BotaNз.ы. в крайнем случае - можно приведение типов сделать. Думаю, для динамически типизированных языков не прокатит. я про явное приведение. можно у объекта метод определить "конвертировать в предка", который будет возвращать предка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 12:26 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-geneВот эта картинка - она к чему? что на значит? В картинке ясно видн как Типы "Процессоры процесса расчетного" стали типами "Процессоры процесса нормативного" т.е. множественная классификация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 14:57 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Объект -> Тип . ..... . Тип -> Класс . ....... . Класс -> Класс . ....... . Класс -> ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 15:09 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
формат съехал, но смысль понятна вроде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 15:10 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Даже если бы у меня был под рукой язык, позволяющий на лету менять тип объекта, я бы не стал с ним связываться. Ведь главное, что требуется - вносить в разные списки, а для этого никакой класс менять не надо. Вноси себе и все. Вот если одновременно требуется нарастить функциональность (добавить полей, например), то немного репу почесать придется, но все равно делал бы на мэйстриме, а не на экзотике. Моделировал бы объект как набор слотов, соответстующих подтипу. Подтипы делегируют обращения к элементам суперкласса, если у себя не находят. На ум приходит javascript с прототипированием, но множественного наследования он все равно не потянет, так что лучше моделировать самому. Если писать на Java или C++? то эффективносить исполнения и будет примерно на уровне javascript. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 15:46 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
rfgвносить в разные списки, а для этого никакой класс менять не надо главный список - это сам класс. объект там есть по умолчанию. класс - это множесто объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 18:08 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
Об чём тут толкуют? Об апкастинге? Или снова наследуют шар от круга? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 18:18 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-generfgвносить в разные списки, а для этого никакой класс менять не надо главный список - это сам класс. объект там есть по умолчанию. класс - это множесто объектов. объект может быть в разных классах одновременно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 18:40 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
это буч все перепутал, назвав свой КОП ООПом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2012, 18:49 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
что такое алкастинг? но если я правильно понял - то ни капли не алкастинг. думаю причина вопросов в том, что мало где реализована простая идея "класс - это множестов объектов". класс используют как фабрику объектов, но что бы организовать множество вводят всякие коллекции, экстенты и тд. То есть для класса существует операция NEW имя_класса(парарметры_конструктора) ,что подразумевает создание нового объекта, но нет операции GET имя_класса (параметры_отбора_объекта) , что подразумевает получение ссылки на уже существующий объект. В существующих системах единственны способ сохранить доступ к объекту - сохранить ссылку на него (в эктенте, коллекции или как то еще). Как только ссылка потеряна - доступа к объекту утерян тоже. Мой исходный вопрос интересен в контексте системы где такая операция GET есть. Объясню почему. Она позволяет ввести существующий объект в новый класс, а потом получить ссылку на него уже как на объект нового класса. Это подразумевает статический контроль типов. И это абсолютно не то,что мы можем обращаться к объекту класса-наследника по интерфейсу предка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 01:04 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-geneчто такое алкастинг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 02:25 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-gene, блабла тебе уже 10 раз показал где это реализовано и намного круче чем ты думаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 03:48 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
2 VipRos да не показал ты ничего. я тебе таких скринов в экселе нарисую десять за час. Ты хоть раз где-нибуть связно мне объяснил, о чем ты говоришь? ссылку дал на доки, на описание или еще на что? Нет. поэтому я тебя воспринимаю сугубо как тролля, извини. ну ладно... пусть будет тролль с понятиями. в смысле - термины знаешь. 2 mayton Ржать конечно легче чем думать. Но, уважаемый, я, задав Вам вопрос об алкастинге, как-то сразу перешел на статический контроль типов. То есть, подумавши, можно сделать вывод что речь идет не об одном и том же.... ну, если вы понимаете что такое тип и его статический контроль, ибо all casting это механизм сильно динамический и затратный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 11:14 |
|
||
|
Поменять класс у существующего объекта
|
|||
|---|---|---|---|
|
#18+
U-gene, вот тут немного было http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=854532&msg=10725224 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2012, 12:20 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=71&tid=1342406]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 407ms |

| 0 / 0 |
