作者 |
[美] 埃里克·伽玛(Erich Gamma) 理查德·赫尔姆(Richard Helm) 拉尔夫·约翰逊(Ralph Johnson) 约翰·威利斯迪斯(John Vlissides) |
丛书名 |
经典原版书库 |
出版社 |
机械工业出版社 |
ISBN |
9787111679547 |
简要 |
简介 |
内容简介书籍计算机书籍 本书是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位面向对象领域专家精心选取了颇具价值的设计实践,加以分类整理和命名,并用简洁而易于复用的形式表达出来。本书已经成为面向对象技术人员的圣经和词典,书中定义的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 Editor33 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 Standards47 2.6 Supporting Multiple Window Systems . . . . . . . . . . . . . . . . . . . 51 2.7 User Operations . . . . . . . . . . . . . . . . . . . . . 58 2.8 Spelling Checking 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 Patterns137 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 Responsibility . . . . . . . . . . . . . . . . . . . . . . . 223 Command...................................... 233 Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Mediator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Memento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Observer...................................... 293 State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Strate~v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Template Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Visitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Discussion of Behavioral Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 6 Conclusion 6.1 What to Expect from Design Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 6.2 A Brief History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 6.3 The Pattern Community. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 6.4 An Invitation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 6.5 A Parting Thought. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 A Glossary B Guide to Notation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 B.1 Class Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 B.2 Object Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 B.3 Interaction Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 C Foundation Classes 369 C.1 List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 C.2 Iterator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 C.3 ListIterator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 C.4 Point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 C.5 Rect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 Bibliography 375 |