Разница между одиночным классом и статическим классом? [дубликат]

Вы можете использовать систему сборки GulpJs и попробовать плагин, который я написал, который делает именно то, что вы хотите:

преобразование ng-directives в data-ng-directives, что является спецификацией W3C для проверки html5.

Он тщательно протестирован и найден здесь: https://github.com/pgilad/gulp-angular-htmlify

https: //www.npmjs. ком / пакет / глотка-угловой-htmlify

27
задан Community 23 May 2017 в 12:03
поделиться

2 ответа

Разница не в правильном способе запроса. Потому что синглтон не является ключевым словом по сравнению со статическим. Вы должны спросить, как «Когда выбрать, какой?». В чем преимущества синглтон-класса перед статическим классом, эти вопросы возникают на стадии проектирования.

Singleton: использование: классы, которые служат в качестве глобальной конфигурации, например: пробная версия программного обеспечения с одним подключением к базе данных, экземпляры классов JDK Runtime на jvm.

Когда начинать: 1.При разработке вашего кода вы думаете о прямой совместимости, как, например, завтра, когда вам нужно преобразовать этот одноэлементный класс в обычный класс или разрешить создание подклассов. 2. Вы можете предоставить функцию отложенной загрузки, когда этот одноэлементный класс тяжел.

static: Использование: классы, которые в основном выполняют преобразования, вспомогательные функции. пожалуйста, проверьте класс по математике.

Когда идти: 1. вспомогательные классы, используемые всеми классами в вашей разработке API.

недостаток: 1. классы загружены.

ожидая очков от других людей.

6
ответ дан 28 November 2019 в 05:17
поделиться

A Singleton - это не тип класса, а шаблон проектирования. С Singleton вы (пытаетесь) гарантировать, что только один экземпляр определенного класса когда-либо будет создан внутри одной виртуальной машины Java. Кстати, современные реализации синглтон-паттернов используют перечисления. Более старые реализации используют закрытый конструктор и хранят ссылку на один экземпляр в статическом поле.

Статический класс всегда является классом-членом, который, в отличие от внутреннего класса, не имеет доступа к переменным экземпляра окружающего класса.


Пример статического класса

public class A {
  public static class B {        
  }     
  public        int notAccessibleForB;
  public static int    accessibleForB;
}

Шаблон синглтона (простой старый стиль)

public final class Singleton {
  public final static Singleton INSTANCE = new Singleton();
  private Singleton(){}
}

Синглтон узор (простой современный стиль)

public enum Singleton {
   INSTANCE;
}
1
ответ дан 28 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: