Рубрики
Без рубрики

Эффективная Java Часть 4 – Обеспечение неинсталлируемости с помощью частного конструктора

Когда это использовать? Когда вы хотите создать класс для хранения набора статических полей или статического метода. Один… Помеченный java.

Когда это использовать? Когда вы хотите создать класс для хранения набора статических полей или статического метода. И вы не хотите создавать экземпляр класса.

Чтобы предотвратить создание объекта из класса, мы могли бы пометить класс как абстрактный, но это сделало бы класс похожим на то, что он должен быть унаследован другим подклассом, и этот подкласс может быть создан.

Таким образом, лучший способ обеспечить неинсталлируемость – это создать частный конструктор для класса.

class A {
    private A() {}
}

Еще лучше, но не строго обязательно, исключение может быть вызвано, если конструктор будет вызван, что поможет предотвратить неожиданный вызов конструктора изнутри класса

class A {
    private A() {
        throw new AssertError();
    }
}

Оригинал: “https://dev.to/htintrinh/effective-java-part-4-enforce-noninstantiability-with-a-private-constructor-104i”