Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

GrandM-Patterns_in_Java

.pdf
Скачиваний:
95
Добавлен:
14.03.2016
Размер:
8.88 Mб
Скачать

550 Предметный указатель

Interface and Abstract Class, шаблон 61, 79,

80-85

использование 80-API81 применение в Java

8

1

-

82

пример кода 82-85 связанные шаблоны 85 следствие 8 1

Interpreter, шаблон - см. Little Language,

шаблон

Introspection 207-208 Invoker, класс 324 «Is-a» , отношение 52

«Is-part-of» , отношение 53 Iterator, класс 223

Iterator, шаблон 2 1 1 , 220, 222-226, 439

использование 222-API225 применение в Java 225 пример кода 225-226 связанные шаблоны 226 следствия 225

IteratorIF, интерфейс 223

Java

AWГ, пользовательский интерфейс 528-529

Swing, пользовательский интерфейс

508-509, 523-525, 528-529

модель событий 31 6-3 17

Java API

классы, включенные в 219-220 java.awt, пакет 128, 197, 232 java.awt.AWГEvent 77 java.awt.Component 458 java.awt.EventQueue 529 java.awt.FileDialog 72 java.awt.MediaTracker 540 java.awt.peer 232 java.awt.Toolkit 128, 232 JavaBeans 147, 207-208

классы 263

java.io.FilenameFilter 72 java.io.PipedInputStream 496

java.io. PipedOutputStream 496 java.lang.Runtime 159

java.net.lnetAddress 465

java.net.URL, класс 244 java.text.Format 348 javax.swing.table 81 -82

«Java 2 Platform Security Architecture».

спецификация 265 java.util.Collection 225 java.util.lterator 225 java.util.Vector 449 java.util.zip 418

Jcomponent, объект 366

к

Кit, шаблон - см. Abstract Factory, шаблон

L

Law of Demeter, шаблон 66, 246 Layered Architecture, шаблон 238

Least recently used (LRU), стратегия 292 LRU - см. Least recently used LexicalAnalyzer, объект 346

Little Language, шаблон 309, 332, 333-359, 439

использование 333-347 применение в Java АРl 348 пример кода 348-359 связанные шаблоны 359 следствия 347-348

Lock Object, шаблон 179, 442, 453-459

использование 453-457 применение в Java API 458 пример кода 458-459 связанные шаблоны 459 следствия 457

Low Coupling/High Cohesion, шаблон 197, 203, 372

м

Marker Interface, шаблон 6 1 , 91 -95, 332

использование 91 -95 применение в Java АРI 94 пример кода 94-95 связанные шаблоны 95 следствия 95

Mediator, класс 364

Mediator, шаблон 360-372, 400, 410

использование 360-365 применение в Java АРI 366 пример кода 367-372 связанные шаблоны 372 следствия 365-366

Memento, класс 378 Memento, объект 380-38 1

MementoIF, интерфейс 378-379

MIME - см. Multipurpose Intemet Маil Extensions

MOUSE МОУЕ, событие 316 Multicaster, класс 393-394

неиспользование 395-396

Multipurpose Intemet Mail Extensions (MIME), формат 1 3 1

MutabIe, класс 206 MutatorClient, класс 207

N

nextState, метод 405 notify, метод 463-464

Null Object, шаблон 141 , 226, 310, 4 1 1 -415, 421

использование 4 1 1 -413 пример кода 414-41 5 связанные шаблоны 415 следствия 413-414

NullOperation, класс 413

о

ObjectCreator, объект 290 ObjectInputStream, класс 380, 383-384 ObjectKey, класс 289 ObjectOutputStream, класс 379

Object Pool, шаблон 108, 161-179, 275, 279

использование 162168 пример кода 1 68-179 связанные шаблоны 1 79 следствия 1 68

Object Replication, шаблон 307 Object Request Broker, шаблон 105

Предметный указатель 551

ObjectStructure, класс 433 ObservabIe, класс 393

ObservabIeI F, интерфейс 393, 394-395 Observer, класс 393

Observer, шаблон 310, 372, 39 1-400, 544

использование 391 -397 применение в Java АРI 398 пример кода 398-400 связанные шаблоны 400 следствия 397-398

ObserverIF, интерфейс 393-395 OperationIF, интерфейс 413 Operationl..., методы 405 Optimistic Concurrency, шаблон 307 Originator, класс 378

OutputStream, объект 380

р

Parser, класс 346

«Pattem Language: Тоwпs, Buildings, Construction.>, книга 16

Pipe, шаблон 191, 498 Polymorphism, шаблон 95, 405, 410 processEvent, метод 405

Processor, класс 476 Producer, класс 495

Producer-Consumer, шаблон 442, 493-498, 520, 526, 528, 532

использование 493-496 применение в Java АРI 496 пример кода 496-498 размер очереди 495 следствия 496

Product, КJlacc 135

ProductlF, интерфейс 1 12, 136 ProductlWidgetA. .., классы 126

Protection Рroху, шаблон 97, 105, 208, 210, 270

Prototype, класс 144

Prototype, шаблон 108, 122, 142151

использование 142146 примененис в Java АР1 147 пример кода 147- 1 5 1 связанные шаблоны 1 5 1 следствия 146147

552 Предметный указатель

PrototypeBuilder, класс 144-145 Prototype Builder, объект 145-146 PrototypeIF, интерфейс 144

Proxy, шаблон 61, 96105, 221 , 279, 538-539, 544

использование 96-98 пример кода 98-1 05 связанные шаблоны 105 следствия 98

PubIish-SuЬsсriЬе, шаблон 400 Pure Fabrication, шаблон 241 , 554

Q

Queue, класс 495

Queues 460-46 1

R

ReadOn1yClient, класс 207 ReadOnlyIF, интерфейс 206

Read-Only Interface, шаблон 90, 181, 204-2 10, 390

использование 204-208 пример кода 208-210 связанные шаблоны 210 следствия 208

Read starvation 488 ReadWriteLock, объект 485-487

ReadfWrite Lock, шаблон 442, 482, 484-492

использование 483-487 пример кода 488-492 связанные шаблоны 492 следствия 487-488

RеаЮреratiоп, класс 413

Recursive Composition, шаблон - см.

Composite, шаблон Remote proxy 97 Request, класс 476 Requester, класс 536 Result, класс 536 ReusabIe, класс 165

ReusabIePoo1, класс 165166

s

Schedu1eOrdering, интерфейс 477 Schedu1er, класс 477, 479-480 Scheduler, объект 477-478

Scheduler, шаблон 442, 473-482, 492, 498' 527, 532

использование 472-478 пример кода 478-482 связанный шаблон 482 следствия 478

SerializabIe, интерфейс 94, 382 Service, класс 71 -72, 274 ServiceIF, интерфейс 274-275 ServiceProxy, класс 274 SharedConcreteFlyweight, класс 253

Sing1e Threaded Execution, шаблон 90, 442, 443-452, 459, 470, 472, 487, 492

использование 443-447 применение в Java АРl 449 пример кода 449-451 связанные шаблоны 452 следствия 448

Singleton, шаблон 108, 1 3 1 , 152161, 410, 415

использование 1 52- 1 59

ошибки 157159

применение в Java АРl 1 59 пример кода 1 59- 1 6 1 связанные шаблоны 1 6 1 следствия 159

Sink, класс 184 SinkIF, интерфейс 1 85

Snapshot, шаблон 95, 310, 373-390

использование 373-387 пример кода 387-390 связанные шаблоны 390 следствия 387

SoftKeyReference, объект 294-296 SoftReference, объект 294-296 Soft references 167

Source, класс 183, 186 SourcelF, интерфейс 18З

SpecializedAbstraction, класс 230-23 1

SpecializedAbstractionlmpl, интерфейс 231 Specia1izcdImpl l/2, классы 231

start. метод 405 State. класс 405-406

State. шаблон 58. 401-410

использование 401 -406 пример кода 407-410 связанные шаблоны 410 следствия 406-407

Strategy. шаблон 74. 122. 221 . 286. 310.

415-42 1 . 428

использование 416-АР41I8 применение в Java 4 1 8 пример кода 4 19-420 связанные шаблоны 420-421 следствия 4 1 8

StrategyIF. интерфейс 417 String. класс 89

String. объект 254 Structural pattems 21 1-307 Stub 97

Synchronization factoring 447

т

Target. класс 379 TargetIF. интерфейс 215

Template Method. шаблон 79. 122. 141 . 286. 307. 310. 321 . 332. 421 . 422-428

использование 422-426 пример кода 426-428 связанные шаблоны 428 следствие 426

TerminalToken. класс 346 TextFileReader. класс 385-386

Тhread Pool. шаблон 179. 526-527. 532

Toolkit. шаблон - см. Abstract Factory.

шаблон

Two-Phase Termination. шаблон 442. 467. 499-503. 520

использование 499-501 применение в Java АР' 502 пример кода 502-503

следствия 501

u

UML - см. Unified Modeling Language Undoiredo 324-325

Предметный указатепь 553

Unified Modeling Language (UML) 19-40

комментарии 28

понятие временности в отличие от Java 32 uniq. UNIX-программа 183

UnsharedConcreteAyweight. класс 253 URLConnection. объект 1 15- 1 16 «Using Pattem Languages for

vObject-Oriented Programs•• книга 16

Value objects 87

Virtual Ргоху. шаблон 92. 105. 212. 270-279. 307. 539. 544

использование 272-276 пример кода 276-279 связанные шаблоны 279 следствия 276

Visitor. класс 434 Visitor. объект 434-436

Visitor. шаблон 141. 203. 359. 430-439

альтернативная версия 434-435 идеальная версия 432-436 использование 429-436 пример кода 436-439 связанные шаблоны 439

следствия 436

w

wait. метод 463

wc. UNIХ-программа 183 VVeb-браузер 265

VVhite Вох Testing. шаблон 372 VVidgetAIF. . . • интерфейсы 126

VVrite starvation 488

А

Абстрактные классы 22 Абстрактные суперклассы 76-77, 8 1 Абстрактный класс-фабрика 123

Абстракции объект 231-232

Агрегация 25

композитная 26

Активный объект 38

554 Предметный указатель

А11ександер,Кристофер 16 Антишаблоны 14

неправильное использование наследова­

ния 65

Асинхронное вычисление 535-536 Ассоциации 24-26

имя 24 отличие от связей 29-30

разъяснение суги 24

Аукцион интерактивный 484-485

Б

Базовой коллекции изменение 225 Бек, Кент 16 Бизнес-план 42

разработка 44--45

Бизнес-правило 41 1-412 Буферы

активные 504-505 многочисленные 5 1 1 резервные 504-505

Бэкуса-Наура форма 336

в

Взаимная блокировка 441-442, 448, 461

избежание 453-455, 462

Взаимодействие 30

асинхронное 36 нумерация 30-31 параллельное 32-34 повторяющееся 32-33

предварительное условие 36-37 составное 3 1

Взаимодействия диаграмма 30-38

разработка 54-55

Влиссидес, Джон 16

Внутренние классы 217-218

г

Гамма, Эрих 16 Глубокое копирование 145 Грамматика 335-336

важность формальной 355

д

Данных преобразованиеjанализ 182- 183

Двусвязный список 83 Делегирование 62-68

альтернатива наследованию 62-64

разъяснение отношений между классами' основанные на 66

событий, модель 67, 3 1 5-316, 398

Десериализация 1 55, 382 Джонсон, Ральф 16

Диагностические программы 123124 Диаграмма

взаимодействия 30-38 классов 19-30 объектов 30 разверты анияя 39-40 состояний 38-39

Диалоговое окно 360-362, 401-404

не отслеживающее состояния 401-402

Доверие 264-265 Доступ к базе данных 162164

3

Зависание

записи 487-488

чтения 488

Зависимости 45

связанные с состоянием 363

Заглушка 97 Закрытие процесса 500-504

Закрытый

классKOHC1J)YICfOP217-211854

экземпляр 2 1 7

Заместитель удаленный 97

Зарезервированные слова 334

и

Извещения, пакетирование 396 Индикатор видимости 19

неиспользование 22

Индикатор множественности 24-25 Инициализация многоуровневая 1 15

Интернет-магазин 271 -272 Интерфейс 22

и кэширование 290 назначение 70, 80 ограничения 72

Интроспекция 207-208 Инстанциирование

«ленивое» 1 54-1 55, 271

отложенное, управление 273

Интерфейс пользователя

икоманды 325-326

ифункции отмены/повтора 324-325

Информация о продукте, считывание

287-288

Исполнители 43

Источник событий 3 1 5

к

Каннингэм, Уард 16 Каркас приложений 109-1 10 Класс 19-22

библиотека 162164

в JavaBeans 263

внутренние 2 1 7-2 18

диаграмма 19-30, 48-50

изображение в ВИде прямоyroльника 19 использование 157-158

количество экземпляров 1 52- 1 53, 1 55, 165166

несовместимость 263-264 одиночка 1 54 отложенная загрузка 275

роли в шаблоне Abstract Superclass 76

Клонирование объектов 145-146 Кодирование 43 Команды

использование собьпий для представления 326

отмены 324-325

передача в шаблоне Chain of Responsibility 314

сохранения истории 324-325

Компьютерная игра 373-377, 453-455 Конкретный класс-фабрика 124

Конкурирующих операций шабло-

ны 441-544

решаемые проблемы 441 -442

Предметный указатель 555

Контейнерный класс 91-92

Контейнерный объект 9 1

Контаролирование движения транспор- 443-446

Концептуальная модель 48-50 Копирование

глубокое 145-146 поверхностное 145146

Кэш

вторичный 293-294 и сборка мусора 294-296

настройка производительности 291-294

ограничение 288-289, 291 -294

реализация 290-291 управление 287

Кэширование 287

л

Лексема 336 Лексический анализ, правила 336

м

Малый язык

использование 333 лексические правила 341 определение 333-334 составляющие 333

Маркер-интерфейс 92-93 Массивы

использование 166 копирование 213-214 ограничения 83

Метод, вызов

асинхронный 37 конкурентный 443, 446 отменяемый 37-38 синхронный 26

Методы 20-21

винтерфейсе объекта-итератора 224

вклассе AbstractLoadabIeClass 263

вклассе State 405

вшаблоне Builder 137- 1 38

охраняемые 446-447 О пропуск параметров 1 специальные 197

556 Предметный указатель

Мультиобъект 32 «Мягкие» ССЬUlки 167

н ограничения 167

Наследование 62-63

замена делеmрованием 62-63 замена шаблоном Decorator 284 ограниченность 64-65

Неизменяемый объект 88-89 Нисходящая стратегия 336

о

Объект 30

в модели делегирования событий 315-316 заместитель 96-97 обертка, проблемы 283-284

повторное использование 164 потребитель данных 505 потребление ресурсов 164 создание 143144 состояния 168, 401

Объект блокировки 453

управление доступом 456-457

Объектно-ориентированное проектирова­ ние 43, 50-60

Объектно-ориентированный анализ 43, 48-50

Объекты значений 87

замена 87 ограничения 87

Определение требований 42, 45-46

Опрос 537-538

Основные шаблоны 61 - 105 Отмена/повтор 324-325

Очередь данных 460-461 n

Пакет 28 Пищевой процессор 261-262 Переменные

в классе 19-22

transient, модификатор 383

Поведенческие шаблоны 309-439

Поверхностное копирование 145-146 Погода, данные 534-535, 538 Поддержка продукта 127 Поиск файлов, программа 333-344

Порождающие шаблоны 108-179 Потоки

взаимная блокировка - см. Взаимная блокировка

завершение 500, 502

и метод getlnstance 1 56157

множественные 34-35, 87 распределение 526-529

Потребитель данных, объект 505 Предварительное условие 36-37 Предшествование, правило 335-336 Претензии, диспетчеризация 493-494 Префикс 31 Приемник событий 3 1 5

Программа, показывающая календарные даты 416-417

Программное обеспечение, жизненный цикл 42-43

исследование проблемы 44-60

Продукция 336

Проигрыватель аудиоклипов 1 52153, 159161

Просмотр инвентаря 222 Прототип

СОЗдание 43 управляющий 146

Пустой итератор 224

р

Развертывания диаграмма 39-40 Разделяющие шаблоны 1 8 1 -210 Рандеву 539 Регистрация

входа 422-423

непрерывная 323

Рекурсивный спуск 35 1 Рекурсия правая 337 Риски 45

Риск, связанный с нарушением безопас­

ности 264-265

Роль, имя 24

с

Сборка мусора 1 57- 1 59, 167

и кэш 294-296

Связи 29, 3 1-32

Семантика 333

Сериализация 94, 155-156, 379-381

использование 156

Сервисные объекты, совместно исполь­ зуемые 275

Синтаксис 333 Синтаксический

анализатор 346-347 разбор, дерево 339, 355-356

Синхронизации факторинг 447 Синхронное вычисление

запуск 539

Система

автоматизированного проектирования - см. Computer-Assisted Design

безопасности 20 1-206, 280-28 1 , 3 1 1 -3 12, 391 -392, 473-476

Ситуации использования 42, 43

второстепенные 47 ключевые 43 основные 47 разработка 46-48 реальные 42-44

Служебные классы

и маркер-интерфейс 92-93 подклассы 64-65

События 315-316

использование для предстааления ко­ манд 326

Согласованность

записи 296-297

относительная 297

чтения 296-297

Состояние

диаграмма 38-39 запрет 396 изменение 38-39, 401

СпециФикация требований 45-46

зависимости 45 предположения 45

риски 45

Стандартные письма, создание 521-525

Предметный указатель 557

Стереотип 2 1 Стрелки навигации 24 Ссылка динамическая 274

статическая 272

т

Таблица оглавления, программа 429-432

Текстовый процессор 248-251 , 322-323, 425

Тестирование 43

Торговля акциями 499-501

у

Управление

запросами 526-527 исключительной СИ1уацией 508, 539-540 результатом 528

Управляющий прототипдля146

Устро йство смывания туалета

468-469

Учет рабочего времени, система 297-298

ф

Факторинг синхронизации 447 Фасадный класс 54, 242-243 Физические сенсоры, доступ 228-229

Форматирование документа 193

х

Хелм, Ричард 16

ч

Частота успешных обращений 29 1

ш

Шаблоны проектирования 1 3

история 1 6 описание 13-14

558 Предметный указатель

э

программа шлюза 1 3 1 - 1 35

создание/оmравка 240-242

Элл илсис 2 1 , 24-25

«- Это...•• отношение 52

Электронной почты сообщения

 

«- Это часть...•• отношение 53

Производственно-практическое издание

Гранд Марк

IПаблоны проектирования

в Java

Бедуший редактор А.В. Жвалевский

Научный редакторЕ. д.А. Народецкий

Редактор С Каляева

Художник обложки СВ.сиКовалевский.

Компьютерная верстка Лученок

Корректор Е.О. Кликунова

Подписано в печать с готовых диапозитивов 22.01.2004.

Формат 70)( 100 1/16. Бумага газетная. Гарнитура Ньютон.

Тираж 3000 экз. Заказ N2

3072

Печать офсетная. Усл. печ. л. 45.37. Уч.-ИЗД. л. 36.87.

000 qHOBoe знание». ид М 05902 от 24.09. 200 1 .

Москва, КО.lодезныЙ пер.,

Д .

2а.

107076. Телефон (095) 234-58-53.

 

 

E-mail: ru@wnk.biz

 

 

 

Отпечатано с готовых ::шаПОЗIIТI1ВОВ

http://wnk.biz

 

 

 

в Аl\а.'lеМII'1еСI\ОЙ ТllПографllll (( НаУI\Ю) РАН

1 99034, Санп-Петерб}рг. 9 ЛИНIIЯ.

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]