显然,存储一系列变更历史的数组需要大量内存...虽然我的应用程序可以这样工作,但似乎有更聪明的方法来处理它。
ArrayList<Photo> photoHistory = new ArrayList<>();
photoHistory.add(originalPhoto);
photoHistory.add(change1);
photoHistory.add(change2);
// bad implementation - lots of memory
也许只需存储一个原始和当前视图模型,并记录使用的方法/过滤器?然后,当用户点击“撤消”时,它会获取所做更改的总数并再次运行所有更改减去一个?这似乎也非常低效。
我想我只是在寻求有关如何实现软件应用程序的通用“撤消”功能的建议。