|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.09.2015, 19:29 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Ссылка на объект и клонирование объекта
Доброго времени
Суть: Есть некий наследник TCustomPreference класса. который, работая в режиме хранения объекта, должен обращаться к объекту если тот есть, и взаимодействовать с ним через реализованные абстрактные методы. Вопрос: Как ссылаться на объект? Моя задача создать настройку, передать ей объект, далее там внутри, с этим объектом работают виртуальные методы. У меня сейчас оно освобождает объект когда это не надо, что рушит программу) Ну и второе: В настройке есть 3 состояния: 1. Текущее 2. Предыдущее значение (копия данных до изменения пользователем) 3. Состояние по-умолчанию (данные по умолчанию) Если с простыми типами(строки, числа и т.д.) все просто, то с объектами сложно Состояние по умолчанию, думаю реализовать вызовом виртуального objReset у настройки и далее в манипуляции с объектом. А вот сохранить текущее состояние объекта как предыдущее а затем откатить любые изменения в классе из предыдущего значения - вот это задача. Не создавать же мне 3 экземпляра класса... |
23.09.2015, 19:32 | #2 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Цитата:
Цитата:
I'm learning to live...
|
||
23.09.2015, 20:23 | #3 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Цитата:
Цитата:
|
||
23.09.2015, 20:33 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
А че ссылка на объект - любая инициализированная переменная соответствующего типа и есть ссылка. А вот undo для объекта, да еще любого? undo для экземпляра TADOQuery, например, это чего будет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
23.09.2015, 20:47 | #5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
Цитата:
В любом случае, что восстановить объект в нужном состоянии хранить ВСЕ промежуточные изменения. Исходное (нулевое состояние) + список выполненных операций (и чем это лучше копий объекта в разных состояниях) при желании такие изменения можно оформить в виде отдельных классов (объектов) по манипулированию основным. и проводить регенерацию объекта (установка в нулевое состояние и последовательное изменение состояний до нужного момента). Хранить все операции отката( т.е. кроме операций по изменению иметь еще и обратные операции (а их ещё надо придумать/описать) а объем они будут занимать такой же как и список выполненных. тоже можно подумать о классах (объектах) манипуляторах.
программа — запись алгоритма на языке понятном транслятору
|
|
23.09.2015, 20:52 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,792
|
Цитата:
I'm learning to live...
|
|
24.09.2015, 07:09 | #7 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 18,136
|
Второй вариант тоньше, но сложней в реализации - записывать только изменения. Для этого сложные системы (например файловая система или ОС и даже вроде БД) ведут журналы, в которых отражаются все изменения.
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 24.09.2015 в 07:12. |
||
24.09.2015, 13:59 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
Да, сериализация самый лучший вариант ) Отмена изменений - банально с диска перезагрузить данные в объект. А это уже реализовано) Спасибо. Разобрался.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ссылка на объект не указывает на экземпляр объекта. | Таксист | C# (си шарп) | 2 | 23.07.2015 23:46 |
ссылка на объект не указывает на экземпляр объекта | kalipta | C# (си шарп) | 1 | 16.12.2014 14:58 |
ссылка на объект не указывает на экземпляр объекта | aliqulu | C# (си шарп) | 3 | 16.03.2014 12:17 |
В экземпляре объекта не задана ссылка на объект. | Madmaxisss | C# (си шарп) | 2 | 17.08.2013 09:25 |
Ссылка на объект не указывает на экземпляр объекта. | Kazbek17 | C# (си шарп) | 11 | 08.02.2012 18:56 |