Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <body>
- <ul>
- <li><a href="#8">Содержание</a></li>
- <li><a href="#11">Предисловие</a>
- <li><a href="#16">Глава 1. Введение в паттерны</a>
- <ul>
- <li><a href="#17">1.1. Что такое паттерн проектирования</a></li>
- <li><a href="#19">1.2 Паттерны проектирования в схеме MVC в языке Smalltalk</a></li>
- <li><a href="#21">1.3. Описание паттернов проектирования</a></li>
- <li><a href="#23">1.4. Каталог паттернов проектирования</a></li>
- <li><a href="#25">1.5. Организация каталога</a></li>
- <li><a href="#26">1.6. Как решать задачи проектирования с помощью паттернов</a>
- <ul>
- <li><a href="#26">Поиск подходящих объектов</a></li>
- <li><a href="#28">Определение степени детализации объекта</a></li>
- <li><a href="#28">Специфицирование интерфейсов объекта</a></li>
- <li><a href="#30">Специфицирование реализации объектов</a></li>
- <li><a href="#33">Механизмы повторного использования</a></li>
- <li><a href="#38">Сравнение структур времени выполнения и времени компиляции</a></li>
- <li><a href="#39">Проектирование с учетом будущих изменений</a></li>
- </ul>
- </li>
- <li><a href="#44">1.7. Как выбирать паттерн проектирования</a></li>
- <li><a href="#45">1.8. Как пользоваться паттерном проектирования</a></li>
- </ul>
- <li><a href="#47">Глава 2. Проектирование редактора документов</a>
- <ul>
- <li><a href="#48">2.1. Задачи проектирования</a></li>
- <li><a href="#50">2.2. Структура документа</a>
- <ul>
- <li><a href="#52">Рекурсивная композиция</a></li>
- <li><a href="#54">Глифы</a></li>
- <li><a href="#54">Паттерн компоновщик</a></li>
- </ul>
- </li>
- <li><a href="#54">2.3. Форматирование</a>
- <ul>
- <li><a href="#55">Инкапсуляция алгоритма форматирования</a></li>
- <li><a href="#55">Классы Compositor и Composition</a></li>
- <li><a href="#57">Стратегия</a></li>
- </ul>
- </li>
- <li><a href="#57">2.4. Оформление пользовательского интерфейса</a>
- <ul>
- <li><a href="#58">Прозрачное обрамление</a></li>
- <li><a href="#59">Моноглиф</a></li>
- <li><a href="#61">Паттерн декоратор</a></li>
- </ul>
- </li>
- <li><a href="#61">2.5. Поддержка нескольких стандартов внешнего облика</a>
- <ul>
- <li><a href="#62">Абстрагирование создания объекта</a></li>
- <li><a href="#62">Фабрики и изготовленные классы</a></li>
- <li><a href="#65">Паттерн абстрактная фабрика</a></li>
- </ul>
- </li>
- <li><a href="#65">2.6. Поддержка нескольких оконных систем</a>
- <ul>
- <li><a href="#65">Можно ли воспользоваться абстрактной фабрикой?</a></li>
- <li><a href="#66">Инкапсуляция зависимостей от реализации</a></li>
- <li><a href="#68">Классы Window и WindowImp</a></li>
- <li><a href="#69">Подклассы WindowImp</a></li>
- <li><a href="#71">Конфигурирование класса Window с помощью WindowImp</a></li>
- <li><a href="#71">Паттерн мост</a></li>
- </ul>
- </li>
- <li><a href="#72">2.7. Операции пользователя</a>
- <ul>
- <li><a href="#73">Инкапсуляция запроса</a></li>
- <li><a href="#74">Класс Command и его подклассы</a></li>
- <li><a href="#75">Отмена операций</a></li>
- <li><a href="#76">История команд</a></li>
- <li><a href="#77">Паттерн команда</a></li>
- </ul>
- </li>
- <li><a href="#77">2.8. Проверка правописания и расстановка переносов</a>
- <ul>
- <li><a href="#78">Доступ к распределенной информации</a></li>
- <li><a href="#78">Инкапсуляция доступа и порядка обхода</a></li>
- <li><a href="#79">Класс Iterator и его подклассы</a></li>
- <li><a href="#82">Паттерн итератор</a></li>
- <li><a href="#82">Обход и действия, выполняемые при обходе</a></li>
- <li><a href="#87">Класс Visitor и его подклассы</a></li>
- <li><a href="#88">Паттерн посетитель</a></li>
- </ul>
- </li>
- <li><a href="#89">2.9. Резюме</a></li>
- </ul>
- </li>
- <li><a href="#90">Глава 3. Порождающие паттерны</a>
- <ul>
- <li><a href="#94">Паттерн Abstract Factory</a></li>
- <li><a href="#103">Паттерн Builder</a></li>
- <li><a href="#112">Паттерн Factory Method</a></li>
- <li><a href="#122">Паттерн Prototype</a></li>
- <li><a href="#131">Паттерн Singleton</a></li>
- <li><a href="#139">Обсуждение порождающих паттернов </a></li>
- </ul>
- </li>
- <li><a href="#141">Глава 4. Структурные паттерны</a>
- <ul>
- <li><a href="#142">Паттерн Adapter</a></li>
- <li><a href="#153">Паттерн Bridge</a></li>
- <li><a href="#163">Паттерн Composite</a></li>
- <li><a href="#174">Паттерн Decorator</a></li>
- <li><a href="#184">Паттерн Facade</a></li>
- <li><a href="#192">Паттерн Flyweight</a></li>
- <li><a href="#204">Паттерн Proxy</a></li>
- <li><a href="#214">Обсуждение структурных паттернов </a></li>
- </ul>
- </li>
- <li><a href="#217">Глава 5. Паттерны поведения</a>
- <ul>
- <li><a href="#218">Паттерн Chain of Responsibility</a></li>
- <li><a href="#228">Паттерн Command</a></li>
- <li><a href="#237">Паттерн Interpreter</a></li>
- <li><a href="#250">Паттерн Iterator</a></li>
- <li><a href="#264">Паттерн Mediator</a></li>
- <li><a href="#273">Паттерн Memento</a></li>
- <li><a href="#281">Паттерн Observer</a></li>
- <li><a href="#292">Паттерн State</a></li>
- <li><a href="#301">Паттерн Strategy</a></li>
- <li><a href="#310">Паттерн Template Method</a></li>
- <li><a href="#315">Паттерн Visitor</a></li>
- <li><a href="#329">Обсуждение паттернов поведения</a>
- <ul>
- <li><a href="#329">Инкапсуляция вариаций</a></li>
- <li><a href="#329">Объекты как аргументы</a></li>
- <li><a href="#330">Должен ли обмен информацией быть инкапсулированным или распределенным</a></li>
- <li><a href="#331">Разделение получателей и отправителей</a></li>
- <li><a href="#333">Резюме</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li><a href="#334">Глава 6. Заключение</a>
- <ul>
- <li><a href="#334">6.1. Чего ожидать от паттернов проектирования</a>
- <ul>
- <li><a href="#334">Единый словарь проектирования</a></li>
- <li><a href="#335">Помощь при документировании и изучении</a></li>
- <li><a href="#335">Дополнение существующих методов</a></li>
- <li><a href="#336">Цель реорганизации</a></li>
- </ul>
- </li>
- <li><a href="#337">Краткая история</a></li>
- <li><a href="#338">Проектировщики паттернов</a>
- <ul>
- <li><a href="#339">Языки паттернов Александра</a></li>
- <li><a href="#340">Паттерны в программном обеспечении</a></li>
- </ul>
- </li>
- <li><a href="#340">Приглашение</a></li>
- <li><a href="#341">На прощание</a></li>
- </ul>
- </li>
- <li><a href="#342">Приложение А. Глоссарий</a></li>
- <li><a href="#345">Приложение В. Объяснение нотации</a>
- <ul>
- <li><a href="#345">В.1. Диаграмма классов</a></li>
- <li><a href="#346">В.2. Диаграмма объектов</a></li>
- <li><a href="#347">В.3. Диаграмма взаимодействий</a></li>
- </ul>
- </li>
- <li><a href="#349">Приложение С. Базовые классы</a>
- <ul>
- <li><a href="#349">C.1. List</a></li>
- <li><a href="#351">C.2. iterator</a></li>
- <li><a href="#351">C.3. ListIterator</a></li>
- <li><a href="#352">C.4. Point</a></li>
- <li><a href="#352">C.5. Rect</a></li>
- </ul>
- </li>
- <li><a href="#354">Библиография</a></li>
- <li><a href="#360">Алфавитный указатель</a></li>
- </ul>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement