Я не уверен, что следую, но это то, что вы ищете?
Plot <- ggplot(data=df.Toplot, aes(x=Gene, y=Value, fill=Var, group = Value)) + geom_bar(stat="identity")
print(Plot)
Это назвало шаблон "команда". Просто реализовать как полезное для любого вида редактора.
Photoshop применяет сложенные преобразования на исходное изображение. Один opetation одна команда. Это просто не применяет преобразование, когда Вы отменяете. Таким образом, это просто сохраняет исходные и последние версии, но я предполагаю, что это могло бы кэшировать последние несколько версий только для производительности.
Так как некоторые операции будут non-reversable и как Вы говорите, что создание снимков всего изображения, каждый раз был бы вне рассмотрения затем единственная другая альтернатива, которую я вижу, была бы стопка дельт. Причем дельта является набором масок, содержащих измененные пиксели до операции. Конечно, много операций могут быть обратимыми, таким образом, их дельты могли быть оптимизированы.
Photoshop использует Историю для отслеживания их действий. Они также служат Отменой, поскольку можно возвратиться в истории в любой точке. Можно установить размер истории в предпочтениях.
Я также предлагаю, чтобы Вы изучили Adobe Version Cue как инструмент для отмены взгляда назад или версий, это встроено в комплект для той единственной цели. http://en.wikipedia.org/wiki/Adobe_Version_Cue
Я не уверен, как Adobe Photoshop реализует undo
, но узел Краски в рамках приложения составления композита Встряски Apple довольно легко объяснить:
x
штрихи (10 я думаю), текущее изображение кэшируется в память.Существует две проблемы с этим:
Ну, существует третья проблема, при этом тот Встряска, ужасно багги и плохо реализованный во многих областях, при этом узел Краски является одним из них - таким образом, я не уверен, насколько хороший реализация это, но я не могу вообразить Photoshop, являющийся слишком отличающимся (хотя намного лучше оптимизированным).