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
Основные сведения о классическом
Последние комментарии
55 минут 57 секунд назад
1 час 33 минут назад
1 день 15 часов назад
1 день 17 часов назад
2 дней 8 часов назад
2 дней 8 часов назад