Re: Object orientation question
On 10/27/2014 4:26 PM, mike wrote:
Hi,
Let me take an example.
We have an interface called BaseIface and then we have a BaseImpl. Then we have AddtionInterface and AdditionImpl. AdditionInterface is a BaseInterface.
Now if we have the following:
public class AdditionImpl implements AdditionInterface, BaseInterface {
}
or
public interface AdditionInterface extends BaseInterface {
}
And then have
public class AdditionImpl implements AdditionInterface {
}
I think the first option is more clear. Since when I look at the class I can see that it has a AdditionInterface and a BaseInterface. Then I know what the class is.
I would like to hear if this approach is correct or how do you view it?
Clearly, the generated code is the same: AdditionInterface extends
BaseInterface, therefore any class implementing AdditionInterface also
necessarily implements BaseInterface. If the class fails to provide a
method specified by BaseInterface, the code won't compile. So the
question is purely about readability and style.
Unless there's something rather unusual going on, I'd tend to favor
brevity: Just say `class AdditionImpl implements AdditionInterface' and
let it go at that. Anyone who's curious about exactly what classes are
extended and which interfaces are implemented can always consult the
Javadoc, where it's all spelled out in gory detail.
Let me pose a counter-question: What would you think of
public class AdditionImpl extends JFrame
implements AdditionInterface
{ ... }
versus
public class AdditionImpl extends JFrame
implements AdditionInterface, BaseInterface,
ImageObserver, MenuContainer, Serializable,
Accessible, RootPaneContainer, WindowConstants
{ ... }
? Is readability improved by the extra detail?
--
esosman@comcast-dot-net.invalid