0

我被困在一个问题上:

-如何为类中的所有方法设置前提条件,以便调用任何方法,检查这些前提条件,如果满足,则开始调用。如果不是,则抛出异常。

我需要那个做什么?我假设我的班级的任何实例都处于某种状态。如果状态不正确,我只想不允许调用某些方法。

例如:如果我的班级是 Player 并且他的状态是 DEAD,我不希望在这种状态下提高他的等级。

该示例准确显示了我的需要。类似于 PHP 中操作的过滤器或类似的东西。

我的意思不是在所有方法开始时手动检查是否满足处于正确状态的条件。有没有符合我期望的解决方案?也许是一些设计模式之类的?

4

3 回答 3

0

唯一的解决方案会相对复杂;您最好在要进行检查的每个方法的开头调用一个检查方法。它只是更简单,自我记录,更有意义。

于 2013-09-20T18:54:32.837 回答
0

您可以将方法包装在 try-catch 控制语句中。

try{
...}
catch(preconditions){
...}
于 2013-09-20T18:47:00.127 回答
0

尝试使用面向方面的编程(AOP)

您可以为类中的每个方法定义切入点并在那里检查您的状态。如果满足条件,则调用该方法,如果不满足,则抛出异常。

于 2013-09-20T18:47:08.857 回答