Э. Гамма, Р. Хелм
Скачать 6.37 Mb.
|
[LCI+92] Mark Linton, Paul Calder, John Interrante, Steven Tang, and John Vlissides. InterViews Reference Manual. CSL, Stanford University, 3.1 edition, 1992. [Lea88] Doug Lea. libg++, the GNU C++ library. In Proceedings of the 1988 USENIX C++ Conference, pages 243–256, Denver, CO, October 1988. USENIX Association. [LG86] Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. McGraw-Hill, New York, 1986. [Lie85] Henry Lieberman. There’s more to menu systems than meets the screen. In SIGGRAPH Computer Graphics, pages 181–189, San Francisco, CA, July 1985. [Lie86] Henry Lieberman. Using prototypical objects to implement shared behavior in object-oriented systems. In Object-Oriented Program- ming Systems, Langu -ages, and Applications Conference Proceed- ings, pages 214–223, Portland, OR, November 1986. [Lin92] Mark A. Linton. Encapsulating a C++ library. In Proceedings of the 1992 USENIX C++ Conference, pages 57–66, Portland, OR, August 1992. ACM Press. [LP93] Mark Linton and Chuck Price. Building distributed user interfaces with Fresco. In Proceedings of the 7th X Technical Conference, pages 77–87, Boston, MA, January 1993. Библиография 433 [LR93] Daniel C. Lynch and Marshall T. Rose. Internet System Handbook. Addison-Wesley, Reading, MA, 1993. [LVC89] Mark A. Linton, John M. Vlissides, and Paul R. Calder. Composing user interfaces with InterViews. Computer, 22(2):8–22, February 1989. [Mar91] Bruce Martin. The separation of interface and implementation in C++. In Proceedings of the 1991 USENIX C++ Conference, pages 51–63, Washington, D.C., April 1991. USENIX Association. [McC87] Paul McCullough. Transparent forwarding: First steps. In Ob- ject-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 331–341, Orlando, FL, October 1987. ACM Press. [Mey88] Bertrand Meyer. Object-Oriented Software Construction. Seri- es in Computer Science. Prentice Hall, Englewood Cliffs, NJ, 1988. [Mur93] Robert B. Murray. C++ Strategies and Tactics. Addison-Wesley, Reading, MA, 1993. [OJ90] William F. Opdyke and Ralph E. Johnson. Refactoring: An aid in designing application frameworks and evolving object-oriented systems. In SOOPPA Conference Proceedings, pages 145–161, Marist College, Poughkeepsie, NY, September 1990. ACM Press. [OJ93] William F. Opdyke and Ralph E. Johnson. Creating abstract super- classes by refactoring. In Proceedings of the 21st Annual Computer Science Conference (ACM CSC ’93), pages 66–73, Indianapolis, IN, February 1993. [P+88] Andrew J. Palay et al. The Andrew Toolkit: An overview. In Proceedings of the 1988 Winter USENIX Technical Conference, pages 9–21, Dallas, TX, February 1988. USENIX Association. [Par90] ParcPlace Systems, Mountain View, CA. ObjectWorks\Smalltalk Release 4 Users Guide, 1990. [Pas86] Geoffrey A. Pascoe. Encapsulators: A new software paradigm in Smalltalk-80. In Object-Oriented Programming Systems, Lan- guages, and Applications Conference Proceedings, pages 341–346, Portland, OR, October 1986. ACM Press. [Pug90] William Pugh. Skiplists: A probabilistic alternative to balanced trees. Com mu nications of the ACM, 33(6):668–676, June 1990. 434 Библиография [RBP+91] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorenson. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, NJ, 1991. [Rum94] James Rumbaugh. The life of an object model: How the object model changes during development. Journal of Object-Oriented Programming, 7(1):24–32, March/April 1994. [SE84] Elliot Soloway and Kate Ehrlich. Empirical studies of program- ming knowledge. IEEE Transactions on Software Engineering, 10(5):595–609, September 1984. [Sha90] Yen-Ping Shan. MoDE: A UIMS for Smalltalk. In ACM OOPSLA/ ECOOP ’90 Conference Proceedings, pages 258–268, Ottawa, Ontario, Canada, October 1990. ACM Press. [Sny86] Alan Snyder. Encapsulation and inheritance in object-oriented languages. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 38–45, Portland, OR, November 1986. ACM Press. [SS86] James C. Spohrer and Elliot Soloway. Novice mistakes: Are the folk wisdoms correct? Communications of the ACM, 29(7):624–632, July 1986. [SS94] Douglas C. Schmidt and Tatsuya Suda. The Service Configurator Fram e work: An extensible architecture for dynamically configuring concurrent, multi-service network daemons. In Proceeding of the Second International Workshop on Configurable Distributed Sys- tems, pages 190–201, Pittsburgh, PA, March 1994. IEEE Computer Society. [Str91] Bjarne Stroustrup. The C++ Programming Language. Addi- son-Wesley, Reading, MA, 1991. Second Edition. [Str93] Paul S. Strauss. IRIS Inventor, a 3D graphics toolkit. In Ob- ject-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 192–200, Washington, D.C., Sep- tember 1993. ACM Press. [Str94] Bjarne Stroustrup. The Design and Evolution of C++. Addi- son-Wesley, Reading, MA, 1994. [Sut63] I.E. Sutherland. Sketchpad: A Man-Machine Graphical Commu- nication System. PhD thesis, MIT, 1963. [Swe85] Richard E. Sweet. The Mesa programming environment. SIGPLAN No tices, 20(7):216–229, July 1985. Библиография 435 [Sym93a] Symantec Corporation, Cupertino, CA. Bedrock Developer’s Ar- chitecture Kit, 1993. [Sym93b] Symantec Corporation, Cupertino, CA. THINK Class Library Guide, 1993. [Sza92] Duane Szafron. SPECTalk: An object-oriented data specification language. In Technology of Object-Oriented Languages and Sys- tems (TOOLS 8), pages 123–138, Santa Barbara, CA, August 1992. Prentice Hall. [US87] David Ungar and Randall B. Smith. Self: The power of simplicity. In Object-Oriented Programming Systems, Languages, and Ap- plications Confe rence Proceedings, pages 227–242, Orlando, FL, October 1987. ACM Press. [VL88] John M. Vlissides and Mark A. Linton. Applying object-oriented design to structured graphics. In Proceedings of the 1988 USE- NIX C++ Conference, pages 81–94, Denver, CO, October 1988. USENIX Association. [VL90] John M. Vlissides and Mark A. Linton. Unidraw: A framework for building domain-specific graphical editors. ACM Transactions on Information Systems, 8(3):237–268, July 1990. [WBJ90] Rebecca Wirfs-Brock and Ralph E. Johnson. A survey of current research in object-oriented design. Communications of the ACM, 33(9):104–124, 1990. [WBWW90] Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener. Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs, NJ, 1990. [WGM88] Andr é Weinand, Erich Gamma, and Rudolf Marty. ET++—An object-oriented application framework in C++. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 46–57, San Diego, CA, September 1988. ACM Press. АЛФАВИТНЫЙ УКАЗАТЕЛЬ A AbstractClass шаблонный метод 376 AbstractExpression интерпретатор 290 Abstract Factory. См. Абстрактная фабрика Abstraction мост 188 AbstractProduct абстрактная фабрика 116 Action команда 275 Adaptee адаптер 174 Adapter. См. Адаптер Aggregate итератор 305 B Bridge. См. Мост Builder. См. Строитель C Caretaker хранитель 333 Chain of Responsibility. См. Цепочка обязанностей Client абстрактная фабрика 116 адаптер 174 интерпретатор 291 команда 280 компоновщик 199 приспособленец 237 прототип 149 цепочка обязанностей 267 Colleague посредник 323 Command. См. Команда Component декоратор 213 компоновщик 199 Composite. См. Компоновщик ConcreteAggregate итератор 305 ConcreteBuilder строитель 127 ConcreteClass шаблонный метод 376 ConcreteCommand команда 279 ConcreteComponent декоратор 213 ConcreteCreator фабричный метод 137 Алфавитный указатель 437 ConcreteDecorator декоратор 213 ConcreteElement посетитель 383 ConcreteFactory абстрактная фабрика 116 ConcreteFlyweight приспособленец 236 ConcreteHandler цепочка обязанностей 267 ConcreteImplementor мост 188 ConcreteIterator итератор 305 ConcreteMediator посредник 323 ConcreteObserver наблюдатель 342 ConcreteProduct абстрактная фабрика 116 фабричный метод 137 ConcretePrototype прототип 149 ConcreteState состояние 354 ConcreteStrategy стратегия 365 ConcreteSubject наблюдатель 342 ConcreteVisitor посетитель 383 Context интерпретатор 290 состояние 354 стратегия 365 Creator фабричный метод 137 Cursor итератор 302 D Decorator. См. Декоратор Dependents 340 Director строитель 126 E Element посетитель 384 F Facade. См. Фасад Factory method. См. Фабричный метод Flyweight. См. Приспособленец FlyweightFactory приспособленец 237 G Glyph 62 H Handle/Body 184 Handler цепочка обязанностей 267 I Implementor мост 188 Interpreter. См. Интерпретатор Invoker команда 280 Iterator. См. Итератор 438 Алфавитный указатель K Kit 113 L Leaf компоновщик 199 Lexi. См. Редактор Lexi List 422 ListIterator 425 M Mediator. См. Посредник Memento. См. Хранитель Model/View/Controller 19 MVC 19 N NonterminalExpression интерпретатор 290 O ObjectStructure посетитель 384 Observer. См. Наблюдатель Originator хранитель 333 P Point 426 Policy 363 Product строитель 127 фабричный метод 137 Prototype. См. Прототип Proxy. См. Заместитель Publish-Subscribe 340 R RealSubject заместитель 249 Receiver команда 280 Rect 427 RefinedAbstraction мост 188 S Singleton. См. Одиночка State. См. Состояние Strategy. См. Стратегия Subject заместитель 249 наблюдатель 342 Surrogate 246 T Target адаптер 174 Template Method. См. Шаблонный метод TerminalExpression интерпретатор 290 Token 330 Toolkit 414 Transaction 275 U UnsharedConcreteFlyweight приспособленец 237 V Virtual Constructor 135 Visitor. См. Посетитель Алфавитный указатель 439 W Wrapper 171, 210 А Абстрактная фабрика 24, 113 другое название 113 известные применения 123 мотивация 114 назначение 113 отношения 116 применимость 115 пример кода 119 реализация 117 результаты 116 родственные паттерны 124 структура 115 участники 116 Абстрактные класс 35, 413 объект 413 операция 413 связанность 413 Агрегирование 44 Адаптер 24, 171 другое название 171 известные применения 182 и мост 259 мотивация 171 назначение 171 отношения 174 применимость 173 пример кода 179 реализация 177 результаты 174 родственные паттерны 184 структура 173 участники 174 В Выбор языка программирования 19 Г Глиф 62 Д Декоратор 25, 209 другое название 210 и заместитель 260 известные применения 219 и компоновщик 260 мотивация 210 назначение 210 отношения 213 применимость 212 пример кода 216 реализация 214 результаты 213 родственные паттерны 220 структура 212 участники 213 Делегирование 41, 413 Деструктор 413 Динамическое связывание 413 Дружественный класс 413 З Задача 18 Закрытое наследование 414 Заместитель 26, 246 другое название 246 и декоратор 260 440 Алфавитный указатель известные применения 258 мотивация 246 назначение 246 отношения 250 применимость 248 пример кода 254 реализация 251 результаты 250 родственные паттерны 258 структура 249 участники 249 Замещение 414 Запрос 29 И Известные применения паттерна 24 Имя 17 Инкапсуляция 29, 414 вариаций 395 Инструментальная библиотека 49, 414 Интерпретатор 26, 287 известные применения 301 мотивация 287 назначение 287 отношения 291 применимость 289 пример кода 293 реализация 292 результаты 291 родственные паттерны 301 структура 290 участники 290 Интрерфейс 32, 414 идентичный 38 наследование 36 Итератор 302 другое название 302 известные применения 317 мотивация 302 назначение 302 отношения 305 применимость 304 пример кода 309 реализация 305 результаты 305 родственные паттерны 318 структура 304 участники 304 К Каркас 49, 414 Каталог организация 27 паттернов 24 Класс 414 Glyph 62 абстрактный 35 глиф 62 конкретный 35, 414 наследование 34 подкласс 34 примесь 36 родительский 34 экземпляр 34 Классификация паттерна 22 Клиент 29 Команда 25, 275 другое название 275 известные применения 286 мотивация 275 назначение 275 Алфавитный указатель 441 отношения 280 применимость 278 пример кода 283 реализация 281 результаты 281 родственные паттерны 286 структура 279 участники 279 Композиция объектов 39, 414 рекурсивная 60 Компоновщик 25, 196 и декоратор 260 известные применения 208 мотивация 196 назначение 196 отношения 199 применимость 198 пример кода 205 реализация 200 результаты 200 родственные паттерны 209 структура 198 участники 199 Конструктор 414 Контроллер 19 М Метакласс 414 Метод 29 Модель 19 Модель/представление/контроллер 19 Мост 24, 184 другое название 184 и адаптер 259 известные применения 195 мотивация 185 назначение 184 отношения 188 применимость 187 пример кода 190 реализация 189 результаты 188 родственные паттерны 196 структура 187 участники 188 Н Наблюдатель 26, 339 другие названия 340 известные применения 351 мотивация 340 назначение 340 отношения 342 применимость 341 пример кода 348 реализация 344 результаты 343 родственные паттерны 352 структура 341 участники 342 Название 22 Назначение 22 Наследование 34, 414 интерфейса 36 класса 34, 36 О Объединение функциональности 80 Объект 29, 415 как аргумент 397 442 Алфавитный указатель композиция 39 определение интерфейсов 32 реализации 34 определение степени детализации 31 разложение системы 31 Одиночка 27, 157 известные применения 165 мотивация 158 назначение 157 отношения 159 применимость 158 пример кода 163 реализация 159 результаты 159 родственные паттерны 166 структура 158 участники 158 Операции 29, 415 замещение 35 сигнатура 32 Описание 22 Организация каталога 27 Осведомленность 44 Отношения агрегирования 415 осведомленности 415 паттерна 23 Отправители и получатели 398 П Параметризованный тип 43, 415 Паттерны 18 Abstract Factory. См. Абстрактная фабрика Adapter. См. Адаптер Bridge. См. Мост Builder. См. Строитель Chain of Responsibility. См. Цепоч- ка обязанностей Command. См. Команда Composite. См. Компоновщик Decorator. См. Декоратор Facade. См. Фасад Factory Method. См. Фабричный метод Flyweight. См. Приспособленец Interpreter. См. Интерпретатор Iterator. См. Итератор Mediator. См. Посредник Memento. См. Хранитель Observer. См. Наблюдатель Prototype. См. Прототип Proxy. См. Заместитель Singleton. См. Одиночка State. См. Состояние Strategy. См. Стратегия Template Method. См. Шаблонный метод Visitor. См. Посетитель в схеме MVC 19 выбор языка 19 другие названия 22 задача 18 известные применения 24 имя 17 использование 54 каталог 24 классификация 22 критерии 27 мотивация 23 Алфавитный указатель 443 название 22 назначение 22 описание 22 отношения 23 поведения 262 порождающие 108 применимость 23 пример кода 23 проектирования 415 реализация 23 результаты 18, 23 решение 18 родственные 24 структура 23 структурные 169 уровень 28 участники 23 цель 27 Переменная экземпляра 34, 415 Пересечение функциональности 80 Подкласс 35, 415 Подсистема 415 Подтип 416 Полиморфизм 416 Получатель 416 и отправитель 398 Посетитель 27, 379 известные применения 395 мотивация 379 назначение 379 отношения 384 применимость 382 пример кода 390 реализация 386 результаты 385 родственные паттерны 395 структура 383 участники 383 Посредник 26, 319 известные применения 328 мотивация 319 назначение 319 отношения 323 применимость 322 пример кода 325 реализация 324 результаты 323 родственные паттерны 329 структура 322 участники 323 Представление 19 Применимость 23 Пример кода 23 Приспособленец 26, 231 известные применения 244 мотивация 231 назначение 231 отношения 237 применимость 235 пример кода 239 реализация 238 результаты 237 родственные паттерны 246 структура 236 участники 236 Прозрачный ящик 39, 416 Протокол 416 Прототип 26, 146 известные применения 156 мотивация 146 назначение 146 отношения 149 |