【发布时间】:2010-12-30 18:39:59
【问题描述】:
一点介绍:
类包含字段和方法(这次让我跳过属性)。
字段表示类的状态。
方法描述类的行为。
在一个设计良好的类中,如果一个方法抛出异常,它不会改变类的状态,对吧? (换句话说,无论发生什么,类的状态都不应该被破坏)
问题:
是否有框架、设计模式、最佳实践或编程语言以事务样式调用一系列方法,从而使任一类的状态都不会改变(在异常情况下),或者一切都会成功?
例如:
// the class foo is now in the state S1
foo.MoveToState2();
// it is now (supposed to be) in the state S2
foo.MoveToFinalState();
// it is now (supposed to be) in the state, namely, S3
当然,MoveToState2() 和 MoveToFinalState() 都可能发生异常。但从这段代码中,我希望 foo 类处于状态 S1 或 S3。
这是一个涉及单个类的简单场景,没有if,没有while,没有副作用,但我希望这个想法很清楚。
【问题讨论】:
标签: oop architecture