C语言设计模式:备忘录
2013-02-15 19:01
309 查看
备忘录模式主要目的用于支持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是一种结构化语言,撤销操作往往在每个返回处理进行回滚,或者通过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语言和设计模式(备忘录模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(备忘录模式) 20
- 设计模式笔记--行为型模式之六--Memento 备忘录
- JAVA设计模式之备忘录模式
- 设计模式之备忘录模式
- C语言和设计模式
- 嵌入式设计模式:有限状态自动机的C语言实现
- C语言和设计模式(享元模式)
- JAVA备忘录之设计模式(02):观察者模式
- C语言和设计模式(责任链模式)
- 设计模式入门之备忘录模式Memento
- C语言和设计模式(之原型模式)
- [python + 设计模式]备忘录模式 memento
- 23种设计模式(15):备忘录模式
- C语言和设计模式(迭代器模式)
- JAVA 设计模式 备忘录模式
- 【HeadFirst 设计模式学习笔记】21 备忘录(Memento)模式拾零
- 设计模式之备忘录模式
- Java设计模式之从[暗黑破坏神存档点]分析备忘录(Memento)模式
- [转]C语言和设计模式(总结篇)、 C#设计模式