Как форсировать шаблон синглтона через наследование - PullRequest
0 голосов
/ 08 января 2020

У меня есть 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 или лучший структурный подход был бы более традиционным / эффективным, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...