Joshua Bloch

Effective Java TM

Notify me when the book’s added
To read this book, upload an EPUB or FB2 file to Bookmate. How do I upload a book?
  • Oksana Skorniakovahas quoted6 years ago
    или что один интерфейс является
    расширением другого (extend) для описания' уровня доступа
  • Oksana Skorniakovahas quoted6 years ago
    Существует, однако, простая идиома, гарантирующая отсутствие
    экземпляров. Конструктор по умолчанию создается только тогда, когда у класса нет явных
    конструкторов, и потому запретить создание экземпляров можно, поместив в класс единственный
    явный закрытый конструктор
  • Oksana Skorniakovahas quoted6 years ago
    Таким образом, если вы абсолютно уверены, что данный класс навсегда останется синглтоном,
    имеет смысл использовать первый вариант. Если же вы хотите отложить решение по этому вопросу,
  • Oksana Skorniakovahas quoted6 years ago
    Статический метод генерации для
    синглтона возвращает единственный экземпляр этого класса, однако это можно легко изменить и
    возвращать, скажем, свой уникальный экземпляр для каждого, потока, обращающегося к этому методу.
  • Oksana Skorniakovahas quoted6 years ago
    В случае с синглтоном этот метод возвращает единственный экземпляр данного класса.
  • Oksana Skorniakovahas quoted6 years ago
    Эти соглашения продолжают
    совершенствоваться, но два названия статических методов генерации стали уже общепринятыми:
    • valueOf' - возвращает экземпляр, который имеет то же значение,
    что и его параметры. Статические методы генерации с таким названием фактически
    являются операторами преобразования типов.
    • getlnstance - возвращает экземпляр, который описан параметрами, однако говорить о том,
    что он будет иметь то же значение, нельзя.
  • Oksana Skorniakovahas quoted6 years ago
    Второй недостаток статических методов генерации состоит в том, что их трудно отличить от
    других статических методов. В документации АРI они не выделяются так, как это делается для
    конструкторов.
  • Oksana Skorniakovahas quoted6 years ago
    Например, в архитектуре Col ections Framework невозможно создать подкласс ни для одного
    из классов реализации. Сомнительно, что в такой маскировке может быть благо, поскольку поощряет
    программистов использовать не наследование, а композицию (статья 14).
  • Oksana Skorniakovahas quoted6 years ago
    Основной недостаток статических методов генерации заключается в том, что классы, не
    имеющие открытых или защищенных конструкторов, не могут иметь подклассов. Это же касается
    классов, которые возвращаются открытыми статическими методами генерации, но сами открытыми не
    являются
  • Oksana Skorniakovahas quoted6 years ago
    На это есть две причины. Во-первых, это позволяет
    гарантировать, что некий класс является синглтоном (статья 2). Во-вторых, это дает возможность
    убедиться в том, что у неизменяемого класса не появилось двух одинаковых экземпляров: a.equals(b)
    тогда и только тогда, когда а==Ь. Если класс предоставляет' такую гарантию, его клиенты могут
    использовать оператор == вместо метода equals(Object), что приводит к существенному повышению
    производительности программы. Подобную оптимизацию реализует шаблон перечисления типов,
fb2epub
Drag & drop your files (not more than 5 at once)