Ruby. Объектно-ориентированное проектирование [Сэнди Метц] (pdf) читать постранично, страница - 2

-  Ruby. Объектно-ориентированное проектирование  5.85 Мб, 304с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Сэнди Метц

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

49
Когда следует принимать проектировочные решения....................................... 50
Создание кода, легко принимающего изменения.................................................... 52
Полагайтесь на поведение, а не на данные........................................................ 52
Повсеместное внедрение единственной обязанности...................................... 57
И наконец, реальное колесо.............................................................................. 61
Выводы................................................................................................................... 63
Глава 3. Управление зависимостями...................................................................... 64
Основные сведения о зависимостях........................................................................ 65
Выявление зависимостей................................................................................. 66
Связи между объектами — Coupling Between Objects (CBO).............................. 67
Другие зависимости......................................................................................... 68
Создание кода со слабой связью............................................................................ 69
Внедренные зависимости................................................................................. 69
Изоляция зависимостей.................................................................................... 72
Устранение зависимостей от порядка следования аргументов.......................... 76
Управление направлением зависимостей............................................................... 83
Разворот в обратном направлении.................................................................... 83
Выбор направления.......................................................................................... 84
Определение конкретности и абстрактности..................................................... 85
Выводы................................................................................................................... 89
Глава 4. Создание гибких интерфейсов.................................................................. 90
Основные сведения об интерфейсах....................................................................... 91
Определение интерфейсов..................................................................................... 93
Открытые интерфейсы...................................................................................... 94
Закрытые интерфейсы...................................................................................... 94
Обязанности, зависимости и интерфейсы........................................................ 94
Поиск открытого интерфейса.................................................................................. 95
Пример приложения: компания, занимающаяся велотуризмом........................ 95
Формирование намерения................................................................................ 96

8

Оглавление
Диаграммы последовательности...................................................................... 97
Нужно не говорить «как», а спрашивать «что»...................................................102
Поиск контекста независимости......................................................................105
Доверие, оказываемое другим объектам.........................................................108
Сообщения для обнаружения потребности в новых объектах...........................109
Создание приложения, основанного на сообщениях........................................112

Написание кода с отличным интерфейсом.............................................................112
Создавайте четко выраженные интерфейсы....................................................113
Уважайте чужие открытые интерфейсы............................................................115
Будьте осмотрительны при наличии зависимости
от закрытых интерфейсов.................................................................................116
Минимизация контекста...................................................................................116
Закон Деметры......................................................................................................117
Определение закона........................................................................................117
Последствия нарушений..................................................................................117
Как обойтись без нарушений............................................................................119
Прислушиваясь к закону Деметры....................................................................120
Выводы..................................................................................................................121
Глава 5. Снижение затрат за счет неявной типизации...........................................122
Основные сведения о неявной типизации..............................................................123
Упущение из виду возможностей применения неявной типизации...................124
Усугубление проблемы....................................................................................125
Скрытые возможности неявной типизации.......................................................128
Последствия неявной типизации......................................................................132
Написание кода с использованием неявной типизации..........................................134
Обнаружение скрытых возможностей применения
неявной типизации...........................................................................................134
Внедрение доверия в использование неявной типизации................................136
Документирование неявных типов...................................................................137
Распределение кода между «утками»...............................................................137
Мудрый подход к выбору «уток».......................................................................138
Преодоление страха применения неявной типизации............................................139
Подрыв неявной типизации с помощью статической типизации.......................139
Сравнение статической и динамической типизации.........................................140
Вступление на путь динамической типизации..................................................141
Выводы..................................................................................................................144

Оглавление     9
Глава 6. Получение поведения через наследование..............................................145
Основные сведения о классическом