I'm creating a GUI module that contains custom JavaFX nodes.
This is the basic hierarchy of this module:
GuiElement
looks like this:
public abstract class GuiElement<T extends Region> {
private T rootNode;
final void setRootNode(T val) {
rootNode = val;
}
final T getRootNode() {
return rootNode;
}
}
Layout
and Control
are just empty abstract classes that extend GuiElement
.
I created the separation, because I want to prevent putting Layout
type nodes where Control
type nodes only are allowed. I think Layout
and Control
are "marker interfaces" in this case. From a logical point, there's no difference between Layout
and Control
type of node, so I couldn't offer any related function in those abstract classes.
Is this considered as a bad practice? Is there any better solution for my problem?
question from:
https://stackoverflow.com/questions/66064118/are-empty-abstract-classes-suitable-here 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…