<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4935859285736422401</id><updated>2011-11-23T21:54:33.464-08:00</updated><title type='text'>Programmer's delight</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://santytech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4935859285736422401/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://santytech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Santy</name><uri>http://www.blogger.com/profile/10407432066450295181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://i98.photobucket.com/albums/l276/k_r_santy/IMG_0378_cool.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4935859285736422401.post-680464415955748228</id><published>2007-12-14T09:24:00.001-08:00</published><updated>2009-12-24T00:37:55.293-08:00</updated><title type='text'>GoF Design Patterns (simplified)</title><content type='html'>&lt;span xmlns=""&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;&lt;br /&gt;Creational patterns &lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;1. Abstract Factory &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;2. Builder &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;3. Factory Method &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;4. Prototype &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;5. Singleton &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;Structural patterns &lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;6. Adapter &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;7. Bridge &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;8. Composite &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;9. Decorator &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;10. Façade &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;11. Flyweight &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;12. Proxy &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;Behavioral patterns &lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;13. Chain Of Responsibility &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;14. Command &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;15. Interpreter &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;16. Iterator &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;17. Mediator &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;18. Memento &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;19. Observer &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;20. State &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;21. Strategy &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;22. Template &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;23. Visitor &lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-size: 10.0pt; font-family: Verdana,sans-serif"&gt;&amp;nbsp;&lt;/span&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Creational patterns&lt;br /&gt;&lt;/h1&gt;&lt;a href="" name="#A1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Abstract Factory&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A way passing a request between a chain of objects&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Provide an interface for creating families of related or dependent objects without specifying their concrete classes.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Very high&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;AbstractFactory&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface for operations that create abstract products &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-family: Courier New;"&gt;abstract class ContinentFactory&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract Herbivore CreateHerbivore();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract Carnivore CreateCarnivore();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteFactory&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the operations to create concrete product objects &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-family: Courier New;"&gt;class AfricaFactory : ContinentFactory&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override Herbivore CreateHerbivore()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return new Wildebeest();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override Carnivore CreateCarnivore()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return new Lion();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;AbstractProduct&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface for a type of product object &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-family: Courier New;"&gt;abstract class Herbivore&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Carnivore&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Eat(Herbivore h);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Product&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines a product object to be created by the corresponding concrete factory &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the AbstractProduct interface &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Lion : Carnivore&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Eat(Herbivore h)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Eat Wildebeest&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(this.GetType().Name + " eats " + h.GetType().Name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Client&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class AnimalWorld&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Herbivore herbivore;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Carnivore carnivore;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public AnimalWorld(ContinentFactory factory)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;carnivore = factory.CreateCarnivore();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;herbivore = factory.CreateHerbivore();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void RunFoodChain()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;carnivore.Eat(herbivore);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create and run the Africa animal world&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ContinentFactory africa = new AfricaFactory();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;AnimalWorld world = new AnimalWorld(africa);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;world.RunFoodChain();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left: 27pt;"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A2"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Builder&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Separates object construction from its representation&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Separate the construction of a complex object from its representation so that the same construction process can create different representations.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium Low&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Director&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;constructs an object using the Builder interface&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Shop&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Construct(VehicleBuilder vehicleBuilder)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicleBuilder.BuildFrame();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicleBuilder.BuildEngine();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Builder&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;specifies an abstract interface for creating parts of a Product object &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class VehicleBuilder&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected Vehicle vehicle;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Property&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Vehicle Vehicle&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return vehicle; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void BuildFrame();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void BuildEngine();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteBuilder&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;constructs and assembles parts of the product by implementing the Builder interface &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines and keeps track of the representation it creates &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;provides an interface for retrieving the product &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class &lt;strong&gt;MotorCycleBuilder&lt;/strong&gt; : VehicleBuilder&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void BuildFrame()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicle = new Vehicle("MotorCycle");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicle["frame"] = "MotorCycle Frame";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void BuildEngine()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicle["engine"] = "500 cc";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;2.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class &lt;strong&gt;CarBuilder&lt;/strong&gt; : VehicleBuilder&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void BuildFrame()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicle = new Vehicle("Car");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicle["frame"] = "Car Frame";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void BuildEngine()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;vehicle["engine"] = "2500 cc";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Product&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;represents the complex object under construction. ConcreteBuilder builds the product's internal representation and defines the process by which it's assembled &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;includes classes that define the constituent parts, including interfaces for assembling the parts into the final result &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Vehicle&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string type;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Hashtable parts = new Hashtable();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Vehicle(string type)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.type = type;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public object this[string key]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return parts[key]; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ parts[key] = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Show()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\n---------------------------");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Vehicle Type: {0}", type);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Frame : {0}", parts["frame"]);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Engine : {0}", parts["engine"]);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create shop with vehicle builders&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Shop shop = new Shop();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;VehicleBuilder b2 = new CarBuilder();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;VehicleBuilder b3 = new MotorCycleBuilder();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Construct and display vehicles&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;shop.Construct(b1);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;b1.Vehicle.Show();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;shop.Construct(b2);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;b2.Vehicle.Show();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left: 27pt;"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A3"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Factory Method&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Creates an instance of several derived classes&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Product&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Page&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteProduct&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the Product interface &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; font-weight: bold; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;1.&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class SkillsPage : Page&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; font-weight: bold; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;2.&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class EducationPage : Page&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; font-weight: bold; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;3.&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class ConclusionPage : Page&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Creator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares the factory method, which returns an object of type Product. Creator may also define a default implementation of the factory method that returns a default ConcreteProduct object. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;may call the factory method to create a Product object. &lt;span style="color: #666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Document&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList pages = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Document()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.CreatePages();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public ArrayList Pages&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return pages; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void CreatePages();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteCreator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;overrides the factory method to return an instance of a ConcreteProduct. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;1.&lt;br /&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Resume : Document&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void CreatePages()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Pages.Add(new SkillsPage());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Pages.Add(new EducationPage());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;2.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Report : Document&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void CreatePages()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Pages.Add(new SkillsPage());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Pages.Add(new EducationPage());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Pages.Add(new ConclusionPage());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Document[] documents = new Document[2];&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;documents[0] = new Resume();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;documents[1] = new Report();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left: 27pt;"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A4"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Prototype&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A fully initialized instance to be copied or cloned&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Specify the kind of objects to create using a prototypical instance, and create new objects by copying this prototype.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Cloning is an important aspect of it.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Prototype&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface for cloning itself &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class ColorPrototype&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract ColorPrototype Clone();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcretePrototype&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements an operation for cloning itself &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Color : ColorPrototype&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int red;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int green;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int blue;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Color(int red, int green, int blue)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.red = red;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.green = green;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.blue = blue;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create a shallow copy&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override ColorPrototype &lt;strong&gt;Clone&lt;/strong&gt;()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return this.MemberwiseClone() as ColorPrototype;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Client/PrototypeManager&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;creates a new object by asking a prototype to clone itself &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class ColorManager&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Hashtable colors = new Hashtable();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Indexer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public ColorPrototype this[string name]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return colors[name] as ColorPrototype;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;colors.Add(name, value);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ColorManager colormanager = new ColorManager();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Initialize with standard colors&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;colormanager["red" ] = new Color(255, 0, 0);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// User adds personalized colors&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;colormanager["peace"] = new Color(128, 211, 128);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Color color;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// User uses selected colors&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;string name = "red";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;color = colormanager[name].Clone() as Color;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;name = "peace";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;color = colormanager[name].Clone() as Color;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A5"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Singleton&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A class of which only a single instance can be created&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Ensure a class has only one instance and provide a global point of access to it.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Singleton&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an Instance operation that lets clients access its unique instance. Instance is a class operation. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;responsible for creating and maintaining its own unique instance.&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class LoadBalancer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private static LoadBalancer instance;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList servers = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Random random = new Random();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Lock synchronization object&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private static object syncLock = new object();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor (protected)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected LoadBalancer()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// List of available servers&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;servers.Add("ServerI");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;servers.Add("ServerII");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;servers.Add("ServerIII");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public static LoadBalancer GetLoadBalancer()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// avoids locking each time the method is invoked&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (instance == null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;lock (syncLock)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (instance == null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;instance = new LoadBalancer();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return instance;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Simple, but effective random load balancer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Server&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;int r = random.Next(servers.Count);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return servers[r].ToString();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;LoadBalancer b1 = LoadBalancer.GetLoadBalancer();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;LoadBalancer b2 = LoadBalancer.GetLoadBalancer();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;LoadBalancer b3 = LoadBalancer.GetLoadBalancer();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Same instance?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (b1 == b2 &amp;amp;&amp;amp; b2 == b3)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Same instance\n");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// All are the same instance -- use b1 arbitrarily - Load balance 15 server requests&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;for (int i = 0; i &amp;lt; 15; i++)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(b1.Server);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h1&gt;Structural patterns&lt;br /&gt;&lt;/h1&gt;&lt;a href="" name="#A6"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Adapter&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Match interfaces of different classes&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium high&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Target&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the domain-specific interface that Client uses. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Compound&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected float boilingPoint;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected string molecularFormula;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Compound(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.name = name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public virtual void Display()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\nCompound: {0} ------ ", name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Adapter&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;adapts the interface Adaptee to the Target interface. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class RichCompound : Compound&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ChemicalDatabank bank;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public RichCompound(string name) : base(name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Adaptee&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;bank = new ChemicalDatabank();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;boilingPoint = bank.GetCriticalPoint(name, "B");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;meltingPoint = bank.GetCriticalPoint(name, "M");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;molecularFormula = bank.GetMolecularStructure(name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Adaptee&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an existing interface that needs adapting. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class ChemicalDatabank&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// The Databank 'legacy API'&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public float GetCriticalPoint(string compound, string point)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;float temperature = 0.0F;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (point == "M") // Melting Point&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;switch (compound.ToLower())&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case "water" : temperature = 0.0F; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case "benzene" : temperature = 5.5F; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else // Boiling Point&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;switch (compound.ToLower())&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case "water" : temperature = 100.0F; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case "benzene" : temperature = 80.1F; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return temperature;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string GetMolecularStructure(string compound)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;string structure = "";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;switch (compound.ToLower())&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case "water" : structure = "H20"; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case "benzene" : structure = "C6H6"; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return structure;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Non-adapted chemical compound&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Compound stuff = new Compound("Unknown");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;stuff.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Adapted chemical compounds&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Compound water = new RichCompound("Water");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;water.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Compound benzene = new RichCompound("Benzene");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;benzene.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A7"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Bridge&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Separates an object's interface from its implementation&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Decouple an abstraction from its implementation so that the two can vary independently.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Abstraction&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the abstraction's interface. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;maintains a reference to an object of type Implementor. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CustomersBase&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private DataObject dataObject;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected string group;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public CustomersBase(string group)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.group = group;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Property&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public DataObject Data&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ dataObject = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return dataObject; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public virtual void Next()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;dataObject.NextRecord();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public virtual void New(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;dataObject.NewRecord(name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public virtual void Show()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;dataObject.ShowRecord();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public virtual void ShowAll()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Customer Group: " + group);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;dataObject.ShowAllRecords();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;RefinedAbstraction&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;extends the interface defined by Abstraction. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Customers : CustomersBase&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Customers(string group) : base(group)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void ShowAll()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine ("------------------------");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;base.ShowAll();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine ("------------------------");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Implementor&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the interface for implementation classes. This interface doesn't have to correspond exactly to Abstraction's interface; in fact the two interfaces can be quite different. Typically the Implementation interface provides only primitive operations, and Abstraction defines higher-level operations based on these primitives. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class DataObject&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void NextRecord();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void PriorRecord();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void NewRecord(string name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void DeleteRecord(string name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void ShowRecord();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void ShowAllRecords();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteImplementor&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the Implementor interface and defines its concrete implementation. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CustomersData : DataObject&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList customers = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int current = 0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public CustomersData()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Loaded from a database&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Add("Jim Jones");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Add("Samual Jackson");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void NextRecord()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (current &amp;lt;= customers.Count - 1)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;current++;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void NewRecord(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Add(name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void ShowRecord()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(customers[current]);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void ShowAllRecords()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;foreach (string name in customers)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" " + name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create RefinedAbstraction&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Customers customers =&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;new Customers("Chicago");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Set ConcreteImplementor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Data = new CustomersData();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Exercise the bridge&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Show();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Next();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Show();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Next();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.Show();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.New("Henry Velasquez");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;customers.ShowAll();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Wait for user&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.Read();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A8"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Composite&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A tree structure of simple and composite objects&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Component&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares the interface for objects in the composition. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements default behavior for the interface common to all classes, as appropriate. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface for accessing and managing its child components. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;(optional) defines an interface for accessing a component's parent in the recursive structure, and implements it if that's appropriate. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class DrawingElement&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public DrawingElement(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.name = name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Add(DrawingElement d);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Remove(DrawingElement d);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Display(int indent);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Leaf&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Represents leaf objects in the composition. A leaf has no children. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Defines behavior for primitive objects in the composition. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class PrimitiveElement : DrawingElement&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public PrimitiveElement(string name) : base(name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Add(DrawingElement c)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Cannot add to a PrimitiveElement");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Remove(DrawingElement c)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Cannot remove from a PrimitiveElement");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display(int indent)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(new String('-', indent) + " " + name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Composite&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines behavior for components having children. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;stores child components. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements child-related operations in the Component interface. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CompositeElement : DrawingElement&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList elements = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public CompositeElement(string name) : base(name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Add(DrawingElement d)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;elements.Add(d);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Remove(DrawingElement d)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;elements.Remove(d);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display(int indent)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(new String('-', indent) +&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;"+ " + name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Display each child element on this node&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;foreach (DrawingElement c in elements)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;c.Display(indent + 2);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create a tree structure&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;CompositeElement root = new CompositeElement("Picture");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;root.Add(new PrimitiveElement("Red Line"));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;root.Add(new PrimitiveElement("Blue Circle"));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;CompositeElement comp = new CompositeElement("Two Circles");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;comp.Add(new PrimitiveElement("Black Circle"));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;comp.Add(new PrimitiveElement("White Circle"));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;root.Add(comp);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Add and remove a PrimitiveElement&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;PrimitiveElement pe = new PrimitiveElement("Yellow Line");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;root.Add(pe);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;root.Remove(pe);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Recursively display nodes&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;root.Display(1);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A9"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Decorator&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Add responsibilities to objects dynamically&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Component&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the interface for objects that can have responsibilities added to them dynamically. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class LibraryItem&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int numCopies;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Property&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public int NumCopies&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return numCopies; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ numCopies = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteComponent&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an object to which additional responsibilities can be attached. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Book : LibraryItem&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string author;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string title;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Book(string author,string title,int numCopies)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.author = author;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.title = title;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.NumCopies = numCopies;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\nBook ------ ");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Author: {0}", author);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Title: {0}", title);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" # Copies: {0}", NumCopies);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Video : LibraryItem&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string director;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string title;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int playTime;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Video(string director, string title,&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;int numCopies, int playTime)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.director = director;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.title = title;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.NumCopies = numCopies;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.playTime = playTime;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\nVideo ----- ");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Director: {0}", director);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Title: {0}", title);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" # Copies: {0}", NumCopies);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Playtime: {0}\n", playTime);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Decorator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;maintains a reference to a Component object and defines an interface that conforms to Component's interface. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Decorator : LibraryItem&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected LibraryItem libraryItem;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Decorator(LibraryItem libraryItem)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.libraryItem = libraryItem;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;libraryItem.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteDecorator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;adds responsibilities to the component. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Borrowable : Decorator&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected ArrayList borrowers = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Borrowable(LibraryItem libraryItem) : base(libraryItem)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void BorrowItem(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;borrowers.Add(name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;libraryItem.NumCopies--;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void ReturnItem(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;borrowers.Remove(name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;libraryItem.NumCopies++;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;base.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;foreach (string borrower in borrowers)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" borrower: " + borrower);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Book book = new Book ("Worley", "Inside ASP.NET", 10);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;book.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Video video = new Video ("Spielberg", "Jaws", 23, 92);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;video.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Make video borrowable, then borrow and display&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Borrowable borrowvideo = new Borrowable(video);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;borrowvideo.BorrowItem("Customer #1");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;borrowvideo.BorrowItem("Customer #2");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;borrowvideo.Display();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A10"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Façade&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A single class that represents an entire subsystem&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Provide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Subsystem&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implement subsystem functionality. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;handle work assigned by the Facade object. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;have no knowledge of the facade and keep no reference to it. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Bank&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public bool HasSufficientSavings(Customer c, int amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Check bank for " + c.Name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return true;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;2.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Loan&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public bool HasNoBadLoans(Customer c)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Check loans for " + c.Name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return true;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;3.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Customer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Customer(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.name = name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Name&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return name; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Facade&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;knows which subsystem classes are responsible for a request. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;delegates client requests to appropriate subsystem objects. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Mortgage&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Bank bank = new Bank();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Loan loan = new Loan();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public bool IsEligible(Customer cust, int amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("{0} applies for {1:C} loan\n",cust.Name, amount);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;bool eligible = true;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Check creditworthyness of applicant&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (!bank.HasSufficientSavings(cust, amount))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;eligible = false;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else if (!loan.HasNoBadLoans(cust))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;eligible = false;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return eligible;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Mortgage mortgage = new Mortgage();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Evaluate mortgage eligibility for customer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Customer customer = new Customer("Ann McKinsey");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;bool eligable = mortgage.IsEligible(customer,125000);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\n" + customer.Name + " has been " + (eligable ? "Approved" : "Rejected"));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A11"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Flyweight&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A friend-grained instance used for efficient sharing&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Use sharing to support large numbers of fine-grained objects efficiently.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Low&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;FlyweightFactory&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;creates and manages flyweight objects &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;ensures that flyweight are shared properly. When a client requests a flyweight, the FlyweightFactory objects supplies an existing instance or creates one, if none exists. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CharacterFactory&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Hashtable characters = new Hashtable();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Character GetCharacter(char key)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Character character = characters[key] as Character;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (character == null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;switch (key)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case 'A': character = new CharacterA(); break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case 'B': character = new CharacterB(); break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;//...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case 'Z': character = new CharacterZ(); break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;characters.Add(key, character);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return character;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Flyweight&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface through which flyweights can receive and act on extrinsic state. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Character&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected char symbol;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected int width;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected int height;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected int pointSize;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Display(int pointSize);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteFlyweight&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the Flyweight interface and adds storage for intrinsic state, if any. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;A ConcreteFlyweight object must be sharable. Any state it stores must be intrinsic, that is, it must be independent of the ConcreteFlyweight object's context. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CharacterA : Character&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public CharacterA()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.symbol = 'A';&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.height = 100;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.width = 120;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display(int pointSize)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.pointSize = pointSize;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(this.symbol + " (pointsize " + this.pointSize + ")");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CharacterB : Character&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public CharacterB()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.symbol = 'B';&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.height = 100;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.width = 140;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Display(int pointSize)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.pointSize = pointSize;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(this.symbol + " (pointsize " + this.pointSize + ")");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Build a document with text&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;string document = "AABBAB";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;char[] chars = document.ToCharArray();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;CharacterFactory f = new CharacterFactory();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;int pointSize = 10;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// For each character use a flyweight object&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;foreach (char c in chars)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;pointSize++;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Character character = f.GetCharacter(c);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;character.Display(pointSize);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A12"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Proxy&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;An object representing another object&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Provide a surrogate or placeholder for another object to control access to it.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Subject&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the common interface for RealSubject and Proxy so that a Proxy can be used anywhere a RealSubject is expected. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public interface IMath&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;double Add(double x, double y);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;double Sub(double x, double y);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;RealSubject&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the real object that the proxy represents. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Math : IMath&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Add(double x, double y){return x + y;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Sub(double x, double y){return x - y;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Proxy&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;maintains a reference that lets the proxy access the real subject. Proxy may refer to a Subject if the RealSubject and Subject interfaces are the same. &lt;/span&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;provides an interface identical to Subject's so that a proxy can be substituted for for the real subject. &lt;/span&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;controls access to the real subject and may be responsible for creating and deleting it. &lt;/span&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;other responsibilites depend on the kind of proxy: &lt;/span&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;span style="color: #aa0000;"&gt;&lt;strong&gt;remote proxies&lt;/strong&gt;&lt;/span&gt; are responsible for encoding a request and its arguments and for sending the encoded request to the real subject in a different address space. &lt;/span&gt;&lt;span style="color: #aa0000; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;span style="color: #aa0000;"&gt;&lt;strong&gt;virtual proxies&lt;/strong&gt;&lt;/span&gt; may cache additional information about the real subject so that they can postpone accessing it. For example, the ImageProxy from the Motivation caches the real images's extent. &lt;/span&gt;&lt;span style="color: #aa0000; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;span style="color: #aa0000;"&gt;&lt;strong&gt;protection proxies&lt;/strong&gt;&lt;/span&gt; check that the caller has the access permissions required to perform a request. &lt;/span&gt;&lt;span style="color: #aa0000; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class MathProxy : IMath&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Math math;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public MathProxy()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;math = new Math();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Add(double x, double y)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return math.Add(x,y);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Sub(double x, double y)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return math.Sub(x,y);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create math proxy&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;MathProxy p = new MathProxy();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Do the math&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("4 + 2 = " + p.Add(4, 2));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("4 - 2 = " + p.Sub(4, 2));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h1&gt;Behavioral patterns&lt;br /&gt;&lt;/h1&gt;&lt;a href="" name="#A13"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Chain Of Responsibility&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A way passing a request between a chain of objects&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium Low&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Handler&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an interface for handling the requests &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;(optional) implements the successor link &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Approver&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected Approver successor;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void SetSuccessor(Approver successor)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.successor = successor;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void ProcessRequest(Purchase purchase);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteHandler&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;handles requests it is responsible for &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;can access its successor &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;if the ConcreteHandler can handle the request, it does so; otherwise it forwards the request to its successor &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Director : Approver&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void ProcessRequest(Purchase purchase)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (purchase.Amount &amp;lt; 10000.0)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("{0} approved request# {1}", this.GetType().Name, purchase.Number);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else if (successor != null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;successor.ProcessRequest(purchase);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;2.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class VicePresident : Approver&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void ProcessRequest(Purchase purchase)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (purchase.Amount &amp;lt; 25000.0)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("{0} approved request# {1}", this.GetType().Name, purchase.Number);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else if (successor != null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;successor.ProcessRequest(purchase);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;3.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class President : Approver&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void ProcessRequest(Purchase purchase)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (purchase.Amount &amp;lt; 100000.0)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("{0} approved request# {1}", this.GetType().Name, purchase.Number);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Request# {0} requires an executive meeting!", purchase.Number);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Responsibility Details&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Purchase&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public int number;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double amount;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string purpose;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Purchase(int number, double amount, string purpose)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.number = number;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.amount = amount;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.purpose = purpose;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Setup Chain of Responsibility&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Director Larry = new Director();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;VicePresident Sam = new VicePresident();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;President Tammy = new President();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Larry.SetSuccessor(Sam);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Sam.SetSuccessor(Tammy);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Purchase p = new Purchase(2034, 350.00, "Supplies");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Larry.ProcessRequest(p);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;p = new Purchase(2035, 32590.10, "Project X");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Larry.ProcessRequest(p);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A14"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Command&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Encapsulate a command request as an object&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Command&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface for executing an operation &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Command&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Execute();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void UnExecute();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteCommand&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines a binding between a Receiver object and an action &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements Execute by invoking the corresponding operation(s) on Receiver &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class CalculatorCommand : Command&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;char @operator;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;int operand;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Calculator calculator;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public CalculatorCommand(Calculator calculator, char @operator, int operand)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.calculator = calculator;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.@operator = @operator;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.operand = operand;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public char Operator&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ @operator = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public int Operand&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ operand = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Execute()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;calculator.Operation(@operator, operand);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void UnExecute()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;calculator.Operation(Undo(@operator), operand);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private char Undo(char @operator)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;char undo;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;switch(@operator)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '+': undo = '-'; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '-': undo = '+'; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '*': undo = '/'; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '/': undo = '*'; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;default : undo = ' '; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return undo;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Receiver&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;knows how to perform the operations associated with carrying out the request. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Calculator&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int curr = 0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Operation(char @operator, int operand)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;switch(@operator)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '+': curr += operand; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '-': curr -= operand; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '*': curr *= operand; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;case '/': curr /= operand; break;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Current value = {0,3} (following {1} {2})", curr, @operator, operand);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Invoker&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;asks the command to carry out the request &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class User&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Calculator calculator = new Calculator();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList commands = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int current = 0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Undo(int levels)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;for (int i = 0; i &amp;lt; levels; i++)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (current &amp;gt; 0)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Command command = commands[--current] as Command;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;command.UnExecute();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Compute(char @operator, int operand)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Command command = new CalculatorCommand(calculator, @operator, operand);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;command.Execute();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;commands.Add(command);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;current++;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;User user = new User();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;user.Compute('+', 100);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;user.Compute('-', 50);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;user.Compute('*', 10);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;user.Compute('/', 2);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Undo 4 commands&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;user.Undo(2);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A15"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Interpreter&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A way to include language elements in a program&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Low&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Context&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;contains information that is global to the interpreter &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Context&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string input;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int output;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Context(string input)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.input = input;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: blue; font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;AbstractExpression&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface for executing an operation &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Expression&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Interpret(Context context)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (context.Input.Length == 0)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (context.Input.StartsWith(Nine()))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Output += (9 * Multiplier());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Input = context.Input.Substring(2);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else if (context.Input.StartsWith(Four()))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Output += (4 * Multiplier());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Input = context.Input.Substring(2);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else if (context.Input.StartsWith(Five()))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Output += (5 * Multiplier());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Input = context.Input.Substring(1);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;while (context.Input.StartsWith(One()))&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Output += (1 * Multiplier());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;context.Input = context.Input.Substring(1);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract string One();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract string Four();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract string Five();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract string Nine();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract int Multiplier();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: blue; font-family: Courier New;"&gt;&lt;br /&gt;&lt;/span&gt;TerminalExpression&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements an Interpret operation associated with terminal symbols in the grammar. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;an instance is required for every terminal symbol in the sentence. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class ThousandExpression : Expression&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string One() { return "M"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Four(){ return " "; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Five(){ return " "; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Nine(){ return " "; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override int Multiplier() { return 1000; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;2.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class HundredExpression : Expression&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string One() { return "C"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Four(){ return "CD"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Five(){ return "D"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Nine(){ return "CM"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override int Multiplier() { return 100; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;3.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class TenExpression : Expression&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string One() { return "X"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Four(){ return "XL"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Five(){ return "L"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Nine(){ return "XC"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override int Multiplier() { return 10; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;4.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class OneExpression : Expression&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string One() { return "I"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Four(){ return "IV"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Five(){ return "V"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override string Nine(){ return "IX"; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override int Multiplier() { return 1; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;string roman = "MCMXXVIII";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Context context = new Context(roman);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ArrayList tree = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;tree.Add(new ThousandExpression());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;tree.Add(new HundredExpression());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;tree.Add(new TenExpression());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;tree.Add(new OneExpression());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;foreach (Expression exp in tree)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;exp.Interpret(context);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("{0} = {1}", roman, context.Output);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A16"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Iterator&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Sequentially access the elements of a collection&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Aggregate&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an interface for creating an Iterator object &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;interface IAbstractCollection&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Iterator CreateIterator();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteAggregate&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the Iterator creation interface to return an instance of the proper ConcreteIterator &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Collection : IAbstractCollection&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList items = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Iterator CreateIterator()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return new Iterator(this);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Property&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public int Count&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return items.Count; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Indexer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public object this[int index]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return items[index]; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ items.Add(value); }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Iterator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an interface for accessing and traversing elements. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;interface IAbstractIterator&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Item First();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Item Next();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;bool IsDone{ get; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Item CurrentItem{ get; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteIterator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the Iterator interface. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;keeps track of the current position in the traversal of the aggregate. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Iterator : IAbstractIterator&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Collection collection;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int current = 0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private int step = 1;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Iterator(Collection collection)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.collection = collection;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Item First()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;current = 0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return collection[current] as Item;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Item Next()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;current += step;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (!IsDone)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return collection[current] as Item;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;else&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return null;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public int Step&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return step; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ step = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Item CurrentItem&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return collection[current] as Item;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public bool IsDone&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return current &amp;gt;= collection.Count ? true : false;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Build a collection&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Collection collection = new Collection();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;collection[0] = new Item("Item 0");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;collection[1] = new Item("Item 1");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;collection[2] = new Item("Item 2");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Iterator iterator = new Iterator(collection);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;iterator.Step = 2;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;for(Item item = iterator.First();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;!iterator.IsDone; item = iterator.Next())&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(item.Name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A17"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Mediator&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Defines simplified communication between classes&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium Low&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Mediator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an interface for communicating with Colleague objects &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class AbstractChatroom&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Register(Participant participant);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Send(&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;string from, string to, string message);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteMediator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements cooperative behavior by coordinating Colleague objects &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;knows and maintains its colleagues &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Chatroom : AbstractChatroom&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Hashtable participants = new Hashtable();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Register(Participant participant)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (participants[participant.Name] == null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;participants[participant.Name] = participant;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;participant.Chatroom = this;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Send(string from, string to, string message)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Participant pto = (Participant)participants[to];&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (pto != null)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;pto.Receive(from, message);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Colleague&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;each Colleague class knows its Mediator object &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;each colleague communicates with its mediator whenever it would have otherwise communicated with another colleague &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Participant&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Chatroom chatroom;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Participant(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{ this.name = name; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Name&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{ get{ return name; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Chatroom Chatroom&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ chatroom = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return chatroom; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Send(string to, string message)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;chatroom.Send(name, to, message);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public virtual void Receive(string from, string message)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("{0} to {1}: '{2}'", from, Name, message);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Chatroom chatroom = new Chatroom();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Participant George = new Participant("George");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Participant John= new Participant("John");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;chatroom.Register(George);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;chatroom.Register(John);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;George.Send ("John", "Hi John!");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;John.Send("George", "My sweet Lord");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;George.Send ("John", "Can't buy me love");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A18"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Memento&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Capture and restore an object's internal state&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Low&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Originator&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;creates a memento containing a snapshot of its current internal state. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;uses the memento to restore its internal state &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class SalesProspect&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string phone;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private double budget;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Name&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return name; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;name = value;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Name: " + name);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Phone&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return phone; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;phone = value;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Phone: " + phone);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Budget&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return budget; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;budget = value;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Budget: " + budget);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Memento SaveMemento()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\nSaving state --\n");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;return new Memento(name, phone, budget);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void RestoreMemento(Memento memento)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("\nRestoring state --\n");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.Name = memento.Name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.Phone = memento.Phone;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.Budget = memento.Budget;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Memento&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;stores internal state of the Originator object. The memento may store as much or as little of the originator's internal state as necessary at its originator's discretion. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;protect against access by objects of other than the originator. Mementos have effectively two interfaces. Caretaker sees a narrow interface to the Memento -- it can only pass the memento to the other objects. Originator, in contrast, sees a wide interface, one that lets it access all the data necessary to restore itself to its previous state. Ideally, only the originator that produces the memento would be permitted to access the memento's internal state. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Memento&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string phone;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private double budget;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Memento(string name, string phone, double budget)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.name = name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.phone = phone;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.budget = budget;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Name&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return name; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ name = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Phone&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return phone; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ phone = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Budget&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return budget; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ budget = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Caretaker&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;is responsible for the memento's safekeeping &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;never operates on or examines the contents of a memento. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class ProspectMemory&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Memento memento;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Memento Memento&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ memento = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return memento; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;SalesProspect s = new SalesProspect();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.Name = "Noel van Halen";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.Phone = "(412) 256-0990";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.Budget = 25000.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Store internal state&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ProspectMemory m = new ProspectMemory();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;m.Memento = s.SaveMemento();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Continue changing originator&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.Name = "Leo Welch";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.Phone = "(310) 209-7111";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.Budget = 1000000.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Restore saved state&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;s.RestoreMemento(m.Memento);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A19"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Observer&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A way of notifying change to a number of classes&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Subject&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;knows its observers. Any number of Observer objects may observe a subject &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;provides an interface for attaching and detaching Observer objects. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class Stock&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected string symbol;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected double price;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private ArrayList investors = new ArrayList();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Stock(string symbol, double price)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.symbol = symbol;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.price = price;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Attach(Investor investor)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;investors.Add(investor);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Notify()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;foreach (Investor investor in investors)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;investor.Update(this);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Price&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return price; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;price = value;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Notify();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public string Symbol&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return symbol; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ symbol = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteSubject&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;stores state of interest to ConcreteObserver &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;sends a notification to its observers when its state changes &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class IBM : Stock&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Constructor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public IBM(string symbol, double price)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;: base(symbol, price)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Observer&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an updating interface for objects that should be notified of changes in a subject. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;interface IInvestor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;void Update(Stock stock);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteObserver&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;maintains a reference to a ConcreteSubject object &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;stores state that should stay consistent with the subject's &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the Observer updating interface to keep its state consistent with the subject's &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Investor : IInvestor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private Stock stock;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Investor(string name)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.name = name;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Update(Stock stock)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine("Notified {0} of {1}'s change to {2:C}", name, stock.Symbol, stock.Price);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Stock Stock&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return stock; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ stock = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create investors&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Investor s = new Investor("Sorros");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Investor b = new Investor("Berkshire");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Create IBM stock and attach investors&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;IBM ibm = new IBM("IBM", 120.00);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ibm.Attach(s);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ibm.Attach(b);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ibm.Price = 120.10;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;ibm.Price = 121.00;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A20"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;State&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Alter an object's behavior when its state changes.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;State&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines an interface for encapsulating the behavior associated with a particular state of the Context. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class State&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Account account;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double balance;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected double interest;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected double lowerLimit;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;protected double upperLimit;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Deposit(double amount);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Withdraw(double amount);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteState&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;stores state of interest to ConcreteObserver &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;sends a notification to its observers when its state changes &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;1.&lt;br /&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class SilverState : State&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public SilverState(State state) : this( state.Balance, state.Account)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{ }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public SilverState(double balance, Account account)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.balance = balance;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.account = account;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Initialize();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private void Initialize()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;interest = 0.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;lowerLimit = 0.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;upperLimit = 1000.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Deposit(double amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;balance += amount;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;StateChangeCheck();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Withdraw(double amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;balance -= amount;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;StateChangeCheck();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private void StateChangeCheck()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (balance &amp;gt; upperLimit)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;account.State = new GoldState(this);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;2.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class GoldState : State&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Overloaded constructors&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public GoldState(State state) : this(state.Balance,state.Account)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public GoldState(double balance, Account account)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.balance = balance;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.account = account;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Initialize();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private void Initialize()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;interest = 0.05;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;lowerLimit = 1000.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;upperLimit = 10000000.0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Deposit(double amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;balance += amount;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;StateChangeCheck();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public override void Withdraw(double amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;balance -= amount;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;StateChangeCheck();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private void StateChangeCheck()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;if (balance &amp;lt; lowerLimit)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;account.State = new SilverState(this);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Context&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;defines the interface of interest to clients &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;maintains an instance of a ConcreteState subclass that defines the current state.&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class Account&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private State state;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;private string owner;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public Account(string owner)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// New accounts are 'Silver' by default&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;this.owner = owner;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;state = new SilverState(0.0, this);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public double Balance&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return state.Balance; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public State State&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;get{ return state; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;set{ state = value; }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Deposit(double amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;state.Deposit(amount);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Balance = {0:C}", this.Balance);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public void Withdraw(double amount)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;state.Withdraw(amount);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Console.WriteLine(" Balance = {0:C}", this.Balance);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;static void Main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;// Open a new account&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;Account account = new Account("Jim Johnson");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;account.Deposit(500.0);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;account.Deposit(300.0);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;account.Withdraw(1100.00);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;a href="" name="#A21"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="font-family: Arial black; font-size: 16px; margin: 28px 0px 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;Strategy&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Monotype Corsiva; font-size: 15px; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Encapsulates an algorithm inside a class&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Definition&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Usage&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0px 0px 0px 3px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;Medium High&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial; font-size: 12px; font-weight: bold; margin-bottom: 0px; margin-top: 9px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Participants&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="0" style="background: #c1c1ff; border-collapse: collapse; margin-left: 15px; width:90%"&gt;&lt;colgroup&gt;&lt;col style="width: 100%;"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: 1pt solid; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Strategy&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;declares an interface common to all supported algorithms. Context uses this interface to call the algorithm defined by a ConcreteStrategy &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;abstract class SortStrategy&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;public abstract void Sort(ArrayList list);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: 1pt solid; border-left: 1pt solid; border-right: 1pt solid; border-top: medium none; padding-bottom: 20px; padding-left: 5px; padding-right: 5px; padding-top: 15px;"&gt;&lt;div style="font-family: Tahoma; font-size: 12px; font-weight: bold; margin: 1px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ConcreteStrategy&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 6px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-bottom: 6px; margin-left: 20pt; margin-top: 0px;"&gt;&lt;li&gt;&lt;span style="font-family: Tahoma; font-size: 11px;"&gt;implements the algorithm using the Strategy interface &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Tahoma; font-size: 11pt; margin-bottom: 0px; margin-top: 2px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Courier New; font-size: 11px;"&gt;class QuickSort : SortStrategy&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background: #e2e2e2; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Cour
