Рассмотрены наиболее популярные в настоящее время паттерны имплементации стека отмены недавних действий Memento и Command, проанализированы их достоинства и недостатки. Предложен метод Diff, в котором сочетаются преимущества обозначенных паттернов с простотой и универсальностью реализации. Данный метод проверен на практике при разработке визуального редактора графов шахтных вентиляционных сетей и их параметров, а также в других подобных приложениях. Доказана его эффективность по таким критериям, как быстродействие, расход памяти, трудозатраты на реализацию.
Розглянуто найпопулярніші на даний час патерни імплементації стеку відміни нещодавніх дій Memento та Command, проаналізовано їх позитивні та негативні властивості. Запропоновано метод Diff, в якому поєднано переваги означених патернів та простота і універсальність реалізації. Даний метод практично перевірено під час розробки візуального редактора графів шахтних вентиляційних мереж та їх параметрів, а також в інших подібних програмах. Доведено його ефективність за такими критеріями, як швидкодія, споживання пам’яті, витрати на реалізацію.
This article deals with the most common patternsMemento and Command which are used nowadays in order to implement a recent user actions undo stack. The new method Diff is suggested, which combines advantages of the both patterns and allows quite simple and common implementation of the undo stack for a developer. Themethod has been practically tested while implementing a visual editor of the mine ventilation model graphs (as well as some other applications). Usage of the applications has proved the efficiency of theDiffmethod by such criteria as speed of response,memory consumption, code reuse and difficulty of the final implementation.