![]() |
|
||||||||||
|
|||||
|
Есть палитра компонентов для схемы. У каждого компонента есть общий класс: Component, этот класс наследуется собственным классом компонента.
В общем случае это выглядит так: Вопрос такой: как заставить общий класс Component клонировать дочерние объекты? Не хочется писать собственный метод клонирования для каждого класса. Или может прототип какой-нибудь можно написать? |
|
|||||
|
Визуальные компоненты, насколько знаю не клонируются, так что через сеарилизацию не получится.
Теоретически можно склонировать значения полей через рефлексию, но только открытых. Если у Вас чисто графика, что на graphics рисуется - можно склонировать его. Если нет - ИМХО для каждого - свой метод clone() - самое простое |
|
|||||
|
Спасибо за информацию. Но неужели нет другого способа? В дочерних объектах функциях клонирования будет одинаковая. Будут различаться только имена классов.
Может есть что-нибудь типа такого? Или как-то так. |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 21
|
Но подобный метод не будет клонированием, поскольку никакие свойства объекта клону переданы не будут.
Для сохранения свойств можно было бы добавить отдельную переменную (массив), где были бы перечислены названия свойств, которые нужно установить клону.
__________________
Пытаюсь делать игры для детей |
|
|||||
|
.
|
Почти. Очевидно, что новый объект с умолчальными свойствами является полным клоном другого объекта такого же класса с умолчальными свойствами )
|
|
|||||
|
Всё таки я бы не поленился переопределять clone() в каждом наследнике.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Цитата:
Цитата:
dimarik, огромное спасибо! Это то, что мне нужно было. Объект нормально воссоздаётся. Сейчас будем тестировать поведение с другими объектами. Есть некоторые сомнения. Добавлено через 6 минут dimarik, ещё раз огромное спасибо! Всё отлично заработало, а самое главное, что структура кода осталась весьма симпатичной и элегантной. Последний раз редактировалось chatman; 11.04.2011 в 09:55. |
|
|||||
|
.
|
Да, Вы неправильно назвали тему ). Клонирование = копирование. Чистый лист бумаги - это объект с умолчальными свойствами. Записки на такой бумажке хорошо копирует... копир )
|
|
|||||
|
Цитата:
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:50. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| copy objects , копирование объектов |
|
|