To make a long story short, I have a toolbox with different tools. I want to implement a class for each tool and the class must implement a common interface creatively called "Tool". Since each tool is simply a set of methods, there is no reason to create an instance of the tool and therefore I would like the methods to be static. However since these methods are abstract, they cannot be made static.
I would like to be able to do this:
RectangleTool.getCursor();
EllipseTool.getCursor();
(EllipseTool and RectangleTool being class names)
I feel this is a legitimate use for an abstract static method. However, I realize it is not possible in Java.
Am I not seeing this properly? I realize I could instantiate a single object of each but I don't like the semantics of it.
Convince me there is a better way to see this.