Основы объектно-ориентированного проектирования
Побочные эффекты в функцияхКоманды и запросы
Формы побочного эффекта
Ссылочная прозрачность
Объекты как машины
Функции, создающие объекты
Чистый стиль для интерфейса класса
Генераторы псевдослучайных чисел: упражнение
Абстрактное состояние, конкретное состояние
Абстрактное состояние, конкретное состояние - 2
Стратегия
Возражения
Законные побочные эффекты: пример
Много ли аргументов должно быть у компонента?
Важность числа аргументов
Операнды и необязательные параметры (опции)
Принцип
Преимущества, обеспечиваемые Принципом Операндов
Исключения из Принципа Операндов?
Контрольный перечень
Размер класса: Подход списка требований
Определение размера класса
Поддержка согласованности
Запреты и послабления
Активные структуры данных
Представление связного списка
Пассивные классы
Инкапсуляция и утверждения
Критика интерфейса класса
Простые, напрашивающиеся решения
Введение состояния
Поддержка согласованности: инвариант реализации
С точки зрения клиента
Взгляд изнутри
АТД и абстрактные машины
Отделение состояния
Слияние списка и стражей
Выборочный экспорт
Как справляться с особыми ситуациями
Априорная схема
Препятствия на пути априорной схемы
Апостериорная схема
Роль механизма исключений
Эволюция классов. Устаревшие классы
Документирование класса и системы
Показ интерфейса
Документирование на уровне системы
У5.1 Функция с побочным эффектом
У5.2 Операнды и опции
У5.3 Возможные аргументы
У5.4 Число элементов как функция
У5.5 Поиск в связных списках
У5.6 Теоремы в инварианте
У5.7 Двунаправленные списки
У5.8 Альтернативный проект связного списка
У5.9 Вставка в связный список
У5.10 Циклические списки
У5.11 Функции ввода, свободные от побочных эффектов
У5.12 Документация
У5.13 Самодокументированное ПО
Содержание раздела