【发布时间】:2013-03-20 20:00:32
【问题描述】:
我有这样的课:
public class DatabaseSession {
public makeCallOne() {...}
public makeCallTwo() {...}
public close() { ... }
}
如果用户实例化这个类,我希望他们能够调用 makeCallOne 和 makeCallTwo。但是,如果他们调用 close(),那么随后对 makeCallOne() 或 makeCallTwo() 的任何调用都应该返回异常。
我可以在每个方法的顶部使用 if 语句来做到这一点,但这很容易忘记写。用什么标准机制说“这个对象现在没用了。你不能再调用它了。”?
【问题讨论】:
-
如你所说,使用状态标志,在方法开始时检查其状态,并根据需要抛出异常。我能想到的任何技术基本上都以相同的方式工作,检查、运行/投掷
-
您可以在私有方法中编写 if 语句并调用它,而不是在每个方法的开头编写 if 语句。
-
@Ozzie - 并从那里抛出异常。然后可以将其称为
ensureOpen()。 -
@OldCurmudgeon 这正是我的意思:)
标签: java database invalidation