Библиотека knigago >> Компьютеры: Языки и системы программирования >> Java, Java Script >> Java: эффективное программирование


Станислав Лем, польский писатель-фантаст и философ, был гением научной фантастики. Его произведения отличаются глубоким интеллектуализмом, точностью предсказаний и исследованием экзистенциальных тем. "Возвращение со звезд" - одна из его самых знаковых работ, включающая одноименную повесть и три другие. Главный герой - астронавт, который возвращается на Землю после длительного космического путешествия. Он обнаруживает, что мир изменился до неузнаваемости, и общество теперь...

Джошуа Блох - Java: эффективное программирование

3-е издание Java: эффективное программирование
Книга - Java: эффективное программирование.  Джошуа Блох  - прочитать полностью в библиотеке КнигаГо
Название:
Java: эффективное программирование
Джошуа Блох

Жанр:

Программирование: прочее, Java, Java Script

Изадано в серии:

неизвестно

Издательство:

Диалектика

Год издания:

ISBN:

978-5-6041394-4-8

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Java: эффективное программирование"

Аннотация к этой книге отсутствует.

Читаем онлайн "Java: эффективное программирование". [Страница - 19]

служебные классы и синглтоны непри­
годны для классов, поведение которых параметризовано лежащим в их
основе ресурсом.
Что на самом деле требуется — это возможность поддержки нескольких эк­
земпляров класса (в нашем примере — класса Spellchecker), каждый из ко­
торых использует необходимый клиенту ресурс (в нашем примере — словарь).
Простая схема, удовлетворяющая этому требованию — передача ресурса кон­
структору при создании нового экземпляра. Это одна из форм внедрения
зависимостей (dependency injection): словарь является зависимостью класса
проверки орфографии, которая внедряется в класс при его создании.
// Внедрение зависимостей обеспечивает гибкость и тестируемость
public class Spellchecker
(
private final Lexicon dictionary;

public Spellchecker(Lexicon dictionary)
{
this.dictionary = Objects.requireNonNull(dictionary);

}
public boolean isValid(String word)
(

)

2.5. ПРЕДПОЧИТАЙТЕ ВНЕДРЕНИЕ ЗАВИСИМОСТЕЙ ЖЕСТКО ПРОШИТЫМ РЕСУРСАМ

49

public List suggestions(String typo)

{
I

}

Схема внедрения зависимостей настолько проста, что многие программи­
сты годами используют ее, даже не подозревая, что она имеет собственное
имя. Хотя наш пример с проверкой орфографии использует только один ресурс
(словарь), внедрение зависимостей работает с произвольным количеством ре­
сурсов и произвольными графами зависимостей. Он сохраняет неизменность
классов (раздел 4.3), так что несколько клиентов могут совместно использовать
зависимые объекты (в предположении, что клиентам нужны одни и те же ба­
зовые ресурсы). Внедрение зависимостей в равной степени применимо к кон­
структорам, статическим фабрикам (раздел 2.1) и строителям (раздел 2.2).
Полезная разновидность схемы состоит в передаче конструктору фабрики
ресурсов. Фабрика — это объект, который может многократно вызываться для
создания экземпляров типа. Такие фабрики воплощают проектный шаблон Фа­
бричный метод [12]. Интерфейс Supplier, введенный в Java 8, идеально
подходит для представления фабрики. Методы, получающие Supplier в
качестве входных данных, обычно должны ограничивать параметр типа фабри­
ки с помощью ограниченного подстановочного типа (bounded wildcard type)
(раздел 5.6), чтобы позволить клиенту передать фабрику, которая создает любой
подтип указанного типа. Например, вот метод, который создает мозаику с ис­
пользованием клиентской фабрики для производства каждой плитки мозаики:
Mosaic create(Supplier --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.