【发布时间】:2014-03-30 19:50:20
【问题描述】:
这是一个最佳实践类型的问题。
假设我有一个抽象类Screen,它实现了一些接口。
现在的问题是,接口添加了大量方法,我敢肯定并非所有屏幕实现都会使用它们。
我想知道最常见和最干净的方法是什么。
-
让它们抽象
在扩展类中添加混乱
protected abstract void onFocus(); -
添加空正文
对于不熟悉扩展类的人来说不好,他们可能会担心是否可以覆盖它们。
protected void onFocus() { // no impl } -
做一些描述注释?
我不确定这对他们有没有用处。
@NotImplemented protected void onFocus() { // no impl }
你认为什么最好?
【问题讨论】:
-
我喜欢第一个选项,如果每个 Screen 对此方法有不同的实现,或者他们可以选择不通过抛出
NotSupportedOperationException或类似的东西来选择不实现 -
在 Java 8 中,您还可以在接口本身中实现
default方法。 -
我知道,不幸的是我认为至少需要两年时间才能将 Java 8 用于生产环境。
-
在这种情况下,通常的做法是实现它们并让它们抛出某种
NotImplementedException。