内容简介
本书是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位面向对象领域专家取了颇具价值的设计实践,加以分类整理和命名,并用简洁而易于复用的形式表达出来。本书已经成为面向对象技术人员的和词典,书中定义的23个模式逐渐成为开发界技术交流所的基础知识和词汇。
目录
1 Introduction 1 1.1 WhatIs a Design Pattern? . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 2 Design Patterns in Smalltalk MVC 4 1.3 Describing Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 The Catalog of Design Patterns . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Organizing the Catalog . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.6 How Design Patterns Solve Design Problems . . . . . . . . . . . . . . . 11 1.7 Howto Selecta Design Pattern . . . . . . . . . . . . . . . . . . . . . . . 28 1.8 Howto Use a Design Pattern . . . . . . . . . . . . . . . . . . . . . . . . 29 2 A Case Study: Designing a document Editor 33 2 1 Design Problems 33 2.2 document Structure . . . . . . . . . . . . . . . . . . . . . 35 2.3 Formatting . . . . . . . . . . . . . . . . . . . . . . . . ~ 40 2.4 Embellishing the User Interface . . . . . . . . . . . . . . . . . . . . 43 2.5 Supporting Multiple Look-and-Feel Standards 47 2.6 Supporting Multiple Window Systems . . . . . . . . . . . . . . . . . . . 51 2.7 User Operations . . . . . . . . . . . . . . . . . . . . . 58 2.8 Spelling Che and Hyphenation. . . . . . . . . . . . . . . . . . . . . 64 2.9 Summary. . . . . . . . . . . . . . . . . . . . . 76 Design Pattern Catalog 79 3 Creational Patterns 81 Abstract Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Factory Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Singleton 127 Discussion of Creational Patterns 135 4 Structural Patterns 137 Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Decorator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Facade........................................ 185 Flyweight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Discussion of Structural Patterns . . . . . . . . . . . . . . . . . . . . . . . . . 219 5 Behavioral Patterns 221 Chain of Responility . . . . . . . . . . . . . . . . . . . . . . . 223 Command...................................... 233 Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Mediator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Memento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Observer...................................... 293 State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Strate~v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Template Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Visitor. . . . . . . . . . . . . . . . . . . . . . .




