用于在对象上添加/删除功能的java范例
假设我正在为事件编写处理程序
该活动一经创建,即可被预订或取消
所以我可以创建一个类似这样的接口
void book();
void cancel();
如果我们进一步扩展它,我们可以添加取消预订和取消预订的方法
void book();
void unbook();
void cancel();
void uncancel();
现在的问题是,我可以对一个尚未取消的事件调用uncancel()
当然,我可以让它抛出一个IllegalStateException
,但我想知道是否有可能在编译时而不是运行时得到一个错误
我必须解决的一个想法是使用更多的接口,有点像这样
Unbookable book();
Uncancellable cancel();
但是当你认为你想做这样的事情时,问题就变得明朗了。
book().cancel().uncancel().unbook()
因为cancel/uncancel
方法不知道它们返回的是基Event
还是Unbookable
事件
那么,有没有明确的java范例可以体面地解决这个问题呢? 最好是一种也能提供智能感知的方式
共 (0) 个答案