⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index2.txt

📁 设计模式英文版 作者:Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides 四人帮的书。 学设计模式的必读的书籍!经典中的经典
💻 TXT
📖 第 1 页 / 共 3 页
字号:
<HTML>

<BODY
	BGCOLOR		= #FFFFFF
	TEXT		= #000000
>

<!-- Index -->

<P>Names of design patterns appear in small capitals: e.g., Adapter.
Page numbers in bold indicate the definition of a term. Numbers in
italics indicate a diagram for the term. Letters after a diagram's
page number indicate the kind of diagram: a "c" denotes a class
diagram, an "i" denotes an interaction diagram, and an "o" denotes
an object diagram. For example, 88co means that a class and object
diagram appears on page 88.</P>

<H2>A</H2>

<DL>

<DT>abstract class 15, 16c, 359, 364, 365c</DT>

<DT>abstract coupling, <I>see</I> coupling, abstract</DT>

<DD>in Observer 296</DD>

<DT>Abstract Factory 87</DT>

<DD>extensibility of 91</DD>

<DD>in catalog summary 8</DD>

<DD>Lexi's use of 51</DD>

<DD>used to configure a subsystem 193</DD>

<DT>Abstract Factory</DT>

<DD>participant of Abstract Factory 88c, 89</DD>

<DT>abstract operation, <I>see</I> operation, abstract</DT>

<DD>use to implement Adapter 144</DD>

<DT>abstract syntax tree 244, 251, 331</DT>

<DD>class structure for 244c, 331c</DD>

<DD>constructing in Smalltalk 250</DD>

<DD>object structure for 244o</DD>

<DT>AbstractExpression</DT>

<DD>participant of Interpreter 245c, 245</DD>

<DT>Abstraction</DT>

<DD>participant of Bridge 153c, 154</DD>

<DT>AbstractProduct</DT>

<DD>participant of Abstract Factory 88c, 89</DD>

<DT>accumulating state 336</DT>

<DT>acquaintance 22, 359</DT>

<DD>C++, defined in 23</DD>

<DD>compared with aggregation 23</DD>

<DD>Smalltalk, defined in 23</DD>

<DT>Action, <I>see</I> Command</DT>

<DT>active iterator, <I>see</I> iterator, active</DT>

<DT>Ada 4, 21</DT>

<DT>Adaptee</DT>

<DD>participant of Adapter 141, 141c</DD>

<DT>Adapter 139</DT>

<DD>compared with Bridge 161, 219</DD>

<DD>compared with Decorator 184</DD>

<DD>compared with Proxy 216</DD>

<DD>in catalog summary 8</DD>

<DT>Adapter</DT>

<DD>participant of Adapter 141, 141c</DD>

<DT>adapter 140</DT>

<DD>class adapter 141, 141c</DD>

<DD>object adapter 141, 141c</DD>

<DD>parameterized 145</DD>

<DD>pluggable, <I>see</I> pluggable adapter</DD>

<DD>two-way 143, 143c</DD>

<DT>adorner 179</DT>

<DT>Aggregate</DT>

<DD>participant of Iterator 259, 259c</DD>

<DT>aggregate object 257</DT>

<DT>aggregation 22, 359</DT>

<DD>C++, defined in 23</DD>

<DD>compared with acquaintance 23</DD>

<DD>notation for 23</DD>

<DD>Smalltalk, defined in 23</DD>

<DT>Alexander, Christopher xiii, 2, 356, 358</DT>

<DT>algorithm</DT>

<DD>avoiding dependence on 24</DD>

<DD>defining steps of 326</DD>

<DD>family of 317</DD>

<DD>skeleton 327</DD>

<DT>AlternationExpression 244co, 343</DT>

<DD>implemented in Smalltalk 249</DD>

<DT>aluminum alloy 76</DT>

<DT>Ambassador, <I>see also</I> Proxy</DT>

<DD>C++ idiom 208</DD>

<DT>AnalogClock 303</DT>

<DT>analysis object model</DT>

<DD>transforming to design object model 353</DD>

<DT>ancestor class 361, <I>see</I> also class, parent</DT>

<DT>Anderson, Bruce xi, 357</DT>

<DT>AndExp 253</DT>

<DT>Andrew Toolkit</DT>

<DD>use of Observer 303</DD>

<DT>Application 107, 107c, 223o, 224ci, 231, 325, 325c</DT>

<DT>application programs 25</DT>

<DT>ApplicationWindow 53, 54c, 55c, 157, 233c, 234c</DT>

<DT>ArrayCompositor 42c, 315, 315c, 322</DT>

<DT>ASCII7Stream 183, 183c</DT>

<DT>aspect of an object 298</DT>

<DT>AssignmentNode 333c</DT>

<DT>associations, <I>see also</I> acquaintance, aggregation</DT>

<DD>in OMT 364</DD>

</DL>

<H2>B</H2>

<DL>

<DT>BTree 202</DT>

<DT>base class, <I>see</I> class, parent</DT>

<DT>Beck, Kent xi, 357</DT>

<DT>Bedrock</DT>

<DD>use of Decorator 179, 180</DD>

<DT>behavioral pattern 10, 221</DT>

<DD>comparison between class and object scope 221</DD>

<DD>discussion 345</DD>

<DT>black-box reuse, <I>see</I> reuse, black-box</DT>

<DT>block, Smalltalk 270</DT>

<DT>BNF form 247</DT>

<DD>examples of 243, 248, 251</DD>

<DT>BombedMazeFactory 93</DT>

<DT>BombedMazeGame 115</DT>

<DT>BombedWall 93, 94, 124</DT>

<DT>Booch Components</DT>

<DD>use of Iterator 270</DD>

<DD>use of Strategy 323</DD>

<DT>Booch, Grady xiii, 260</DT>

<DT>Booch method 363</DT>

<DT>Boolean</DT>

<DD>expression 251</DD>

<DD>variable 254</DD>

<DT>BooleanExp 252</DT>

<DT>Border 44, 45c, 46o</DT>

<DT>BorderDecorator 176o, 176c, 180</DT>

<DT>Bridge 151</DT>

<DD>compared with Adapter 219</DD>

<DD>configured by Abstract Factory 155</DD>

<DD>in catalog summary 8</DD>

<DD>Lexi's use of 58</DD>

<DD>use of delegation in 21</DD>

<DT>bridge 152</DT>

<DT>broadcast communication 296</DT>

<DT>Builder 97</DT>

<DD>compared with Abstract Factory 105, 135</DD>

<DD>compared with Prototype 135</DD>

<DD>in catalog summary 8</DD>

<DD>use in compiler example 189</DD>

<DT>Builder</DT>

<DD>participant of Builder 98, 98c</DD>

<DT>Bureaucrat 232, <I>see also</I> Chain of Responsibility</DT>

<DT>Button 50c, 223o, 224ci, 229, 279</DT>

</DL>

<H2>C</H2>

<DL>

<DT>C 4</DT>

<DT>Calder, Paul 33, 38</DT>

<DT>callback function 235</DT>

<DT>Caretaker</DT>

<DD>participant of Memento 285, 285c, 286i</DD>

<DT>Cargill, Tom 308</DT>

<DT>Chain of Responsibility 223</DT>

<DD>combined with Composite 166, 232</DD>

<DD>compared with Mediator 348</DD>

<DD>compared with Observer 348</DD>

<DD>defined by parent references 166, 232</DD>

<DD>in catalog summary 8</DD>

<DD>use of delegation in 21</DD>

<DT>ChangeManager 282, 299, 300c</DT>

<DT>Character 38, 38c</DT>

<DT>character</DT>

<DD>represented as object 38, 195196</DD>

<DT>Cheshire Cat 155</DT>

<DT>Choices operating system</DT>

<DD>use of Facade 192</DD>

<DD>use of Proxy 209</DD>

<DT>class 14, 359</DT>

<DD>abstract, <I>see</I> abstract class</DD>

<DD>adapter, <I>see</I> adapter, class</DD>

<DD>compared with type 16</DD>

<DD>concrete, <I>see</I> concrete class</DD>

<DD>derived 360</DD>

<DD>friend, <I>see</I> friend class</DD>

<DD>inability to alter 24</DD>

<DD>inheritance, <I>see</I> inheritance</DD>

<DD>instance 15</DD>

<DD>library, <I>see</I> toolkit</DD>

<DD>mixin, <I>see</I> mixin class</DD>

<DD>notation for 15, 363</DD>

<DD>parent 15, 361</DD>

<DD>subclass 15</DD>

<DD>template, <I>see</I> template</DD>

<DT>class diagram 363, 365c, 359</DT>

<DT>class hierarchy</DT>

<DD>adding operations to 356</DD>

<DD>connecting parallel 109, 258</DD>

<DD>explosion 25, 43, 151, 177</DD>

<DD>minimizing size of 113, 120, 177, 277, 317, 348</DD>

<DD>visiting multiple 336</DD>

<DT>class operation 359</DT>

<DD>alternatives provided by Singleton 128</DD>

<DT>Client</DT>

<DD>participant of Abstract Factory 88c, 89</DD>

<DD>participant of Adapter 141, 141c</DD>

<DD>participant of Builder 98, 98c, 99i</DD>

<DD>participant of Chain of Responsibility 225ci, 226, 348i</DD>

<DD>participant of Command 236, 236c, 237i</DD>

<DD>participant of Composite 164c, 165</DD>

<DD>participant of Flyweight 198c, 199</DD>

<DD>participant of Interpreter 245c, 246</DD>

<DD>participant of Prototype 119, 119c</DD>

<DT>client 11</DT>

<DD>isolating concrete classes from 89</DD>

<DT>ClockTimer 302</DT>

<DT>clone operation 117</DT>

<DD>used in Prototype 117</DD>

<DD>implementing 121</DD>

<DT>cloned object 117</DT>

<DD>initializing 121</DD>

<DT>CLOS 4, 260, 338</DT>

<DT>closure 260, 267</DT>

<DT>Coad, Peter 357</DT>

<DT>code structure</DT>

<DD>run-time versus compile-time 23</DD>

<DT>CodeGenerationVisitor 332c</DT>

<DT>Colleague</DT>

<DD>communicating with Mediator 278, 282</DD>

<DD>participant of Mediator 276co, 277, 348i</DD>

<DT>Command 233</DT>

<DD>combined with Memento 239, 287</DD>

<DD>combined with Prototype 238</DD>

<DD>in catalog summary 8</DD>

<DD>use in Lexi 64</DD>

<DT>Command 60, 61c, 233, 233c, 239</DT>

<DD>configured in MenuItem 61</DD>

<DD>history of 62</DD>

<DD>participant of Command 236, 236c, 237i, 347i</DD>

<DT>command</DT>

<DD>C++ idiom, <I>see</I> functor</DD>

<DD>copying before execution 238</DD>

<DD>history, <I>see</I> history list</DD>

<DD>implemented through C++ templates 239, 240</DD>

<DD>intelligence of 238</DD>

<DT>common vocabulary 352</DT>

<DT>communication</DT>

<DD>encapsulated or distributed 346</DD>

<DD>between Strategy and Context 318</DD>

<DD>between Visitor and Element 337</DD>

<DT>compilation dependencies</DT>

<DD>reducing using Facade 188</DD>

<DT>Compiler 185, 186c, 191</DT>

<DT>compiler</DT>

<DD>example in Facade 185, 186c, 188</DD>

<DD>implemented using Visitor 331</DD>

<DD>Smalltalk, <I>see</I> RTL Smalltalk compiler</DD>

<DT>Component</DT>

<DD>participant of Composite 164c, 165, 168</DD>

<DD>participant of Decorator 177, 177c</DD>

<DT>Composite 163</DT>

<DD>caching children of 169</DD>

<DD>child management 167</DD>

<DD>combined with Interpreter 255</DD>

<DD>combined with Iterator 262</DD>

<DD>combined with Visitor 339</DD>

<DD>compared with Decorator 219220</DD>

<DD>compared with Interpreter 247</DD>

<DD>data structure for 169, 170</DD>

<DD>in catalog summary 8</DD>

<DD>interface of 167</DD>

<DD>Lexi's use of 40</DD>

<DD>parent references 166</DD>

<DD>sharing components 166</DD>

<DD>use in Model/View/Controller 5</DD>

<DT>Composite</DT>

<DD>participant of Composite 164c, 165, 165o, 168</DD>

<DT>CompositeEquipment 171</DT>

<DT>Composition 41, 42c, 315, 315c, 320</DT>

<DT>composition, <I>see</I> object composition</DT>

<DT>Compositor 41, 42, 315, 315c, 321</DT>

<DD>interface 41</DD>

<DT>CompressingStream 183c, 184</DT>

<DT>concrete class, 15, 359</DT>

<DD>avoiding specification of 24</DD>

<DD>isolating clients from 89</DD>

<DT>ConcreteAggregate</DT>

<DD>participant of Iterator 259, 259c</DD>

<DT>ConcreteBuilder</DT>

<DD>participant of Builder 98c, 99, 99i</DD>

<DT>ConcreteCommand</DT>

<DD>participant of Command 236, 236c, 238</DD>

<DT>ConcreteComponent</DT>

<DD>participant of Decorator 177, 177c</DD>

<DT>ConcreteDecorator</DT>

<DD>participant of Decorator 177c, 178</DD>

<DT>ConcreteElement</DT>

<DD>participant of Visitor 334, 334c, 335i</DD>

<DT>ConcreteFactory</DT>

<DD>participant of Abstract Factory 89</DD>

<DT>ConcreteFlyweight</DT>

<DD>participant of Flyweight 198co, 199</DD>

<DT>ConcreteHandler</DT>

<DD>participant of Chain of Responsibility 225c, 226</DD>

<DT>ConcreteImplementor</DT>

<DD>participant of Bridge 153c, 154</DD>

<DT>ConcreteIterator</DT>

<DD>participant of Iterator 259, 259c</DD>

<DT>ConcreteObserver</DT>

<DD>participant of Observer 294c, 295, 295i</DD>

<DT>ConcreteProduct</DT>

<DD>participant of Abstract Factory 88, 89</DD>

<DD>participant of Factory Method 108, 108c</DD>

<DT>ConcretePrototype</DT>

<DD>participant of Prototype 119, 119c</DD>

<DT>ConcreteState</DT>

<DD>participant of State 307, 307c</DD>

<DT>ConcreteStrategy</DT>

<DD>participant of Strategy 316c, 316</DD>

<DT>ConcreteSubject</DT>

<DD>participant of Observer 294c, 295, 295i</DD>

<DT>ConcreteVisitor</DT>

<DD>participant 334, 334c, 335i</DD>

<DT>conditional statements</DT>

<DD>avoiding using State 307</DD>

<DD>avoiding using Strategy 317</DD>

<DT>consolidation phase of lifecycle 353</DT>

<DT>constraint solving 282, 283</DT>

<DD>see also ThingLab, QOCA</DD>

<DT>ConstraintSolver 283284, 288</DT>

<DT>constructor 360</DT>

<DT>Context 252</DT>

<DD>participant of Interpreter 245c, 246</DD>

<DD>participant of State 306, 306c</DD>

<DD>participant of Strategy 316c, 316</DD>

<DT>control flow</DT>

<DD>encapsulating, <I>see</I> Mediator</DD>

<DD>inversion of 27</DD>

<DT>Coplien, James 125, 153, 160, 242, 313, 357</DT>

<DT>copy</DT>

<DD>deep 121</DD>

<DD>on write 210</DD>

<DD>shallow 121</DD>

<DT>CountingMazeBuilder 104</DT>

<DT>coupling 360</DT>

<DD>abstract 188, 278, 296, 359</DD>

<DD>loose 24, 26, 277, 347, <I>see also</I> decoupling</DD>

<DD>reducing 24, 187, 188, 223, 226</DD>

<DD>tight 24</DD>

<DT>CreateMaze operation 84</DT>

<DD>Abstract Factory variant (C++) 92</DD>

<DD>Abstract Factory variant (Smalltalk) 94</DD>

<DD>Builder variant 102</DD>

<DD>Factory Method variant 114</DD>

<DD>Prototype variant (Smalltalk) 123, 125</DD>

<DT>creational pattern 10, 81</DT>

<DD>discussion of 135</DD>

<DT>Creator</DT>

<DD>participant of Factory Method 108, 108c</DD>

<DD>implementation of 111, 113</DD>

<DT>Cursor, <I>see</I> Iterator</DT>

<DT>cursor, <I>see</I> iterator, cursor</DT>

</DL>

<H2>D</H2>

<DL>

<DT>data member 360</DT>

<DT>DebuggingGlyph 182</DT>

<DT>Decorator 175</DT>

<DD>compared with Adapter 175, 184</DD>

<DD>compared with Composite 44, 173, 219220</DD>

<DD>compared with Proxy 216, 219220</DD>

<DD>compared with Strategy 179</DD>

<DD>in catalog summary 8</DD>

<DD>Lexi's use of 45c, 46o, 47</DD>

<DD>lightweight versus heavyweight 179</DD>

<DT>Decorator 176, 180</DT>

<DD>participant of Decorator 177, 177c, 180o</DD>

<DT>decorator 175</DT>

<DT>decoupling, <I>see also</I> coupling, loose</DT>

<DD>interface and implementation 154</DD>

<DD>senders and receivers 346</DD>

<DT>deep copy, <I>see</I> copy, deep</DT>

<DT>delegate 20, 144</DT>

<DT>delegation 20, 278, 360</DT>

<DD>compared with inheritance 2021</DD>

<DD>implementing pluggable adapters with 144</DD>

<DD>patterns that rely on 21</DD>

<DT>dependency 293</DT>

<DD>managing complex 299</DD>

<DT>Dependents, <I>see</I> Observer</DT>

<DT>derived class, <I>see</I> class, derived</DT>

<DT>design</DT>

<DD>dj-vu 2</DD>

<DD>density 358</DD>

<DD>documenting with patterns 27, 352</DD>

<DD>for change 23</DD>

<DD>poetry of 356</DD>

<DD>for reuse 23</DD>

<DT>design object model 353</DT>

<DT>design pattern 360</DT>

<DD>adjunct to design methodology 353</DD>

<DD>aspects of design varied by 30</DD>

<DD>benefits 351</DD>

<DD>catalog summary 8</DD>

<DD>catalog template 6</DD>

<DD>classification 10</DD>

<DD>compared with frameworks 28</DD>

<DD>diagram of relationships 12</DD>

<DD>documenting designs with 27, 352</DD>

<DD>essential elements 3</DD>

<DD>finding 355</DD>

<DD>history of 355</DD>

<DD>how to use 29</DD>

<DD>purpose 10</DD>

<DD>refactoring with 353</DD>

<DD>scope 10</DD>

<DD>selection of 28</DD>

<DD>table of 10</DD>

<DT>destructor 360</DT>

<DD>ensuring iterator's is called 266</DD>

<DT>Dialog 223, 231</DT>

<DT>DialogDirector 274o, 275ci, 278</DT>

<DT>DialogWindow 53, 54c, 55c</DT>

<DT>DigitalClock 302</DT>

<DT>Director</DT>

<DD>participant of Builder 98c, 99, 99i</DD>

<DT>DirectoryBrowser 144, 144c, 145c</DT>

<DT>discretionary glyph 75</DT>

<DT>dispatch</DT>

<DD>double 338</DD>

<DD>multiple 339</DD>

<DD>single 338</DD>

<DT>Doc 205, <I>see also</I> Lexi</DT>

<DT>Document 107, 107c, 233c, 234, 234c, 325, 325c</DT>

<DT>document</DT>

<DD>color 42, 322</DD>

<DD>formatting 40</DD>

<DD>logical structure 40</DD>

<DD>physical structure 35</DD>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -