Singleton Design Pattern с сервисными погрузчиками JAVA - PullRequest
0 голосов
/ 28 марта 2020

Я нашел ответы на мой вопрос о загрузчиках сервисов в Интернете и наткнулся на решение, использующее шаблон проектирования 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 методов, кроме того, которое я упомянул выше, приветствуется.

1 Ответ

1 голос
/ 28 марта 2020

Цель одноэлементного шаблона - создать только один экземпляр этого класса и использовать его везде. Это личное, потому что мы не хотим, чтобы оно создавалось несколько раз. Это stati c, потому что мы хотим использовать везде один и тот же созданный экземпляр.

...