У меня есть Java программа, в которой есть классы, расширяющие Tool. Примерами являются PaintTool, EraseTool и FillTool. Я планирую использовать только методы, определенные в Tool, поэтому мне не нужно беспокоиться о приведении указанных подклассов c.
public abstract class Tool
{
Tool singletonInstance;
public abstract void primaryAction(String arg);
public abstract void secondaryAction(String arg);
public static Tool getSingleton()
{
//???
}
}
Моя проблема - getSingleton (). Что я могу вставить сюда, чтобы удовлетворить конструкторы различных инструментов (в которых будут произвольные процессы). Насколько я понимаю, вы не можете сделать методы stati c абстрактными, поэтому он должен быть реализован в Tool.
Требуется одноэтапный подход, поэтому настройки инструментов по умолчанию сохраняются. Если я неправильно понимаю синглтоны в Java или лучший структурный подход был бы более традиционным / эффективным, пожалуйста, дайте мне знать.