备忘录模式主要目的用于支持undo操作。
考虑到C是一种结构化语言,撤销操作往往在每个返回处理进行回滚,或者通过goto出口统一释放资源。
如果将回滚操作对象化,即勉强可看为该模式的一种实现。
- void func()
- {
- ret = do_sth1() & rollback_reg(sth1);
- if (ok != ret) {
- rollback();
- return ret;
- }
- ret = do_sth2() & rollback_reg(sth2);
- if (ok != ret) {
- rollback();
- return ret;
- }
- ret = do_sth3() & rollback_reg(sth3);
- if (ok != ret) {
- rollback();
- return ret;
- }
- }
备忘录模式在C语言中的应用主要为实现undo操作。由于C语言的特性,通常通过在每个返回点进行回滚或使用goto进行资源释放。文章探讨了如何将回滚操作对象化,以体现备忘录模式的思想。
99

被折叠的 条评论
为什么被折叠?



