Я нашел ответы на мой вопрос о загрузчиках сервисов в Интернете и наткнулся на решение, использующее шаблон проектирования Singleton.
Я реализовал свою программу в соответствии с этим шаблоном, и она дал мне ожидаемый результат.
Но у меня все еще есть некоторые моменты, чтобы уточнить шаблон проектирования синглтона.
Почему мы используем private
static
переменные и данные? c методы проектирования шаблона?
Это класс, который я разработал в соответствии с шаблоном.
public class SingletonDesignPattern {
private static SingletonDesignPattern singletonDesignPattern;
private ServiceLoader<Cipher> serviceLoader;
private SingletonDesignPattern() {
serviceLoader = ServiceLoader.load(Cipher.class);
}
public static SingletonDesignPattern getInstance() {
if (singletonDesignPattern == null)
singletonDesignPattern = new SingletonDesignPattern();
return singletonDesignPattern;
}
}
Я понял, что мы используем static
методы потому что мы не создаем экземпляр этого класса в любом другом классе.
Любое объяснение, которое иллюстрирует цель использования static private
переменных и static
методов, кроме того, которое я упомянул выше, приветствуется.