Предисловие.................................................................................................... 13
Введение от научных редакторов...................................................................... 15
Благодарности................................................................................................. 20
Об авторе........................................................................................................ 22
Глава 1. Объектно-ориентированное проектирование......................................... 23
Глава 2. Проектирование классов с единственной обязанностью......................... 41
Глава 3. Управление зависимостями.................................................................. 64
Глава 4. Создание гибких интерфейсов............................................................. 90
Глава 5. Снижение затрат за счет неявной типизации.........................................122
Глава 6. Получение поведения через наследование............................................145
Глава 7. Разделение ролевого поведения с помощью модулей.............................184
Глава 8. Объединение объектов путем составления композиции..........................211
Глава 9. Проектирование экономически эффективных тестов..............................243
Заключение.....................................................................................................300
Читателям с разными уровнями подготовки книга окажется по-разному полезна.
Тем, кто уже знаком с объектно-ориентированным проектированием, будет о чем поразмышлять; возможно, они по-новому посмотрят на уже привычные вещи и, вполне вероятно, с чем-то будут не согласны. Поскольку в объектно-ориентированном проектировании нет истины в последней инстанции, оспаривание принципов (и спор с автором данной книги) только улучшит общее понимание предмета.
В конце концов, именно вы должны оценивать собственные конструкции кода, проводить эксперименты и делать правильный выбор.
Хотя издание должно представлять интерес для читателей с различными уровнями подготовки, оно выпускалось с прицелом на новичков.
Если вы новичок, то эта часть введения — именно для вас.
Усвойте простую истину: объектно-ориентированное проектирование не магия.