Шаблон проектирования для Undo Engine
Я думаю, что и сувенир, и gof команда непрактичны, когда design-pattern вы имеете дело с моделью design-pattern того размера и объема, которые patterns подразумевает ОП. Они будут patterns работать, но потребуется gof много работы по поддержанию patterns и расширению.
Для этого типа design-pattern проблемы, я думаю, вам необходимо patterns встроить поддержку вашей gof модели данных, чтобы поддерживать undo дифференциальные контрольные undo точки для каждого объекта, задействованного design-pattern в модели. Я сделал это однажды, и undo это сработало очень гладко. Самое patterns важное, что вам нужно сделать, - это design-patterns избегать прямого использования gang-of-four указателей или ссылок в модели.
Каждая design-patterns ссылка на другой объект использует design-pattern некоторый идентификатор (например, целое design-patterns число). Когда объект нужен, вы patterns ищите текущее определение design-pattern объекта в таблице. Таблица design-pattern содержит связанный список pattern для каждого объекта, который design-pattern содержит все предыдущие версии, а design-patterns также информацию о том, для pattern какой контрольной точки они design-patterns были активны.
Выполнить отмену gang-of-four / возврат просто: выполните undo свое действие и установите patterns новую контрольную точку; откатить undo все версии объекта к предыдущей pattern контрольной точке.
Это требует pattern определенной дисциплины в gof коде, но имеет много преимуществ: вам patterns не нужны глубокие копии, поскольку gang-of-four вы выполняете дифференциальное gang-of-four хранение состояния модели; вы design-pattern можете определить объем памяти, который gang-of-four вы хотите использовать (очень важно undo для таких вещей, как модели patterns САПР) либо количеством повторов, либо gof использованной памятью; очень pattern масштабируемые и не требующие design-pattern обслуживания для функций, которые design-pattern работают с моделью, поскольку patterns им не нужно ничего делать design-patterns для реализации отмены / повтора.
design-patterns
undo
Шаблон проектирования для Undo Engine
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.