📄 index2.txt
字号:
<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 + -