["..G$ ","","EAOIROEERFactory pattern example: C#ROOusing System;OOclass ProgramO{OEabstract class PositionOE{Apublic abstract string Title { get; }OE}OOEclass Manager : PositionOE{Apublic override string TitleA{AEgetAE{AEEreturn IManagerI;AE}A}OE}OOEclass Clerk : PositionOE{Apublic override string TitleA{AEgetAE{AEEreturn IClerkI;AE}A}OE}OOEclass Programmer : PositionOE{Apublic override string TitleA{AEgetAE{AEEreturn IProgrammerI;AE}A}OE}OOEstatic class FactoryOE{RA/// <summary>A/// Decides which class to instantiate.A/// </summary>ARpublic static Position Get(int id)A{AEswitch (id)AE{AEEcase 0:AEEEreturn new Manager();AEEcase 1:AEEcase 2:AEEEreturn new Clerk();AEEcase 3:AEEdefault:AEEEreturn new Programmer();AE}A}OE}OOEstatic void Main()OE{Afor (int i = 0; i <= 3; i++)A{AEvar position = Factory.Get(i);AEConsole.WriteLine(IWhere id = {0}, position = {1} I, i, position.Title);A}OE}O}OOROOWhere id = 0, position = ManagerOWhere id = 1, position = ClerkOWhere id = 2, position = ClerkOWhere id = 3, position = ProgrammerR","A)EDCeBcB(BB|F6},BCCXCcCX","Factory Pattern."," A factory creates objects. We implement the factory design pattern in a C# program. With this pattern, we develop an abstraction that isolates the logic for determining which type of class to create. ","Object ","object","Example."," The factory design pattern relies on a type hierarchy. The classes must all implement an interface or derive from a base class. We use an abstract class as the base. The Manager, Clerk and Programmer classes derive from Position. ","Interface ","interface","Abstract ","abstract","The factory design pattern"," is found in the Factory class. The point of the Get method is to take a value and instantiate a class based on that value. It translates integers to objects with a switch statement. ","Switch ","switch","Because Manager, Clerk, and Programmer all derive from the same abstract class, the return type Position can be used.","An implicit cast automatically casts the Manager, Clerk and Programmer to Position references.","The Main method"," serves to demonstrate the Factory class in action. We use as part of the demonstration the integers 0, 1, 2, and 3. We use the Get method with each of these values. ","Then: ","We show that the appropriate type of class was instantiated for each integer.","Discussion."," Imagine you have a system that needs to create objects in many different places. Suppose the system has integers and you want objects for those integers. The factory pattern is ideal for this usage. ","You can use the Factory type to handle object creation in a uniform and concise way.","Summary."," We looked the factory design pattern, which is used to instantiate objects based on another data type such as integers. Factories can be used to reduce code bloat and also make it easier to modify which objects need to be created."]

$/9j/4?QSkZJRgABAQ?AQAB?D/2wCE?YEBAQFBAYFBQYJBgUG.sIBgYICwwKCgsKCgwQDAwMDAwMEAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx8BBwcHDQwNGBAQGBoVERUaHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH:BABEIALUA5gMAEQABEQECEQH/xAB+?EBAQEBAQEBAQ))?AQIDBAUGBwgQ?EDAgMCBg0HCAoD)?ABAgMEBQYREhMhByIxMkGBFBUjJDM0QlFSYWJykQgWQ3GSsbJTc4KToaLB0RglNURjg4SFo9KUpLMRAQADAQE))))BERICIf/a?wD?ABAQIBAD8A/wBUg)?ATMCZgMwGoKZgTMKaiCagGoBqAagtGoIagGoBqAuoBmVFzAZgXMBmAzCK?Ac5J4Y/CSNZ7yogHFbra2/3yD9Yz+YES62vPxyD9Yz+YHeOeGTwcjX+6qAVSjCuKiagGoimoimoKaiKZhUzAZgMwGYDMC5gMwLmEXMChFApUAKBzqauCmZqldzlyY3ynL5mtTeqhHjdU3CbwbW0sftprkX9ulvxUDC0SP8PNLN7z1a37LNDQEdvoY14lPG39BufxyA7oxjU4rU+AEcxnop8ArhJQUL+fTxu+tjfvyCOa0bWeAmlh916ub9l+ppURam4Q89ralnsJok+/S74oahHenrYKhquidzV47eRzV8zkXehWXXWFaR5Gl1mWjURTUFNQVNQDUARxBUUDWYVUUIuYFCKgFCKUUIAfLo8qjTXSIjpZk1R+xG7mtTq5fOoR6g?AoECoEc3cppHJxYZl4a7KBrq6PJssKapPbjbvc317uT1mmX0NZpFR5Gl1mWl2hGjaEU2gE2gDaBVR5Fb1EVtFINIoGkAqAVAjQFCKVDoA+RHIlDlDLn2Pn3GbyWp0Md6OXIihHtRUyzTqUAoBACgQKi9IRzcaRxeqZL0ZGoZl82aRK3OGLPsfPu0vku87G+fPkVTTL3qbczUGjWpFRZAtptSGkWVQqbUGlSULptshlp1bIZat1a8y06EVtFINIBpAigUIpRQjyqiZb+tAjy9gIzxWR1P7DcnR/YduT9HICK+5R86OKf3HLH+65HfiAqVsn0lJN8GP/?OcBO2MH5Of9RL/ANVAdsYPyc/6iX/qgVFrZPIpJvgxn43NCObnXKT6OKH3nLJ+61G/iKjm6gSTxmR1R7Dsmx/YbuX9LM0lOitTLkNWy0rTo5vJWXG30XjlVDTfnpGx/iULTwfO7CuentzQ6vVUw5/iB67x3i1zeBrIJfckY7+JUdklY7muR3XmWhVcBNQoVHEVtryNOzHmG3djzDbsxxlp0RSK6IQVANIEUIpRQjyh?o?BAp0AYUI+TfsQ2ix08c1xn0bd+ypadjXSTzyrv2cMTE1yO9TU5N67ij88+5Y3u2TqWKDD1E7muqWpV1zm/m2ObBCv1vl+pBoy5OwdTVPGu9yuV2f5W3q5IYv/HpOxqdeuMmmsw7UeDcIUTtVJZKGF+fGkZTRa19au06lX61CvrxQQRomzjaz3UT+Bvlz6dNLfMh2ck2MXoN+CGmF0J51+JQ43URRr2uz0r/ADQDo0iurHGWod2KYdHoYpht2aZadEINIBUCNIEVCi9AR5QgAU?AgUAyoH89whGy8QQYxrWtmuN3i29FI5PFqGfJ8FPF6Pc9LpMstT81XoyK/SkVABRUNufTR2clNMAECvJcH7CB9W3nQNV7/aY3e5q9XIRqHtKjo0yrvGu8w29MZiXR3aYadEIrSAVAjSBFQooR5QgAU?AgUAgH86hmbgtW2u5amYfdKrbTdMu4wMkcrm0tTu7kka8SOR3Fc3Sirq5Yr9M17Xta9io5rk4rs93qVFABQCobZXM6OS5mkTMGUVyZKufrVfMCnz3TNumcFPm6j1d8VHkv0r4OP0tXI5U3dZFfVyNsNNCu8Zht6Yzm27tMtuqGVaQI0gFCKUUI8oQAKAQAoECgEA8j2MkY5j2o5j0VrmuTlReVFRSK/Ly4CpqV20w7XVFi3+KwaZaJf9LKjmRp+ZWP6wOb6fhEoufSW68x/laeaWhl6oJW1Mf/OgVyXEV2h8dwxdaf2mNpqpv/rTzO+LUAJjCh+kt93Z/tNxd+2OB6FG0xZRfR0N1d/tdwZ/9IGGmXRt7uMvi1huMvvtgp/jt5Y3FMurI8XVH92pLcz05pH1MnXFG2Jn/KCnaPDrX/2lUyXB3Lsn5MgT/JZucnvq4qPpaEaiNyROjduREQ0zTWR0chOUDswy29EanNt3aplt0RTKtooG0IigUooR5Qg?IAUCBQCAeUKEHcKyoEUKgEyAxkUpzchWXJxtkch1cUKy21SNO7FMNOzXGW3VrjKujSK2hBtArQQ6APKE?EAoECgEA8wEIruBAqBUUCBUUI5ONI5PNMDjs4sZGmGkIroxSK7NcZadWuM006sUy06tMq6EVoAB5Qg)AECgHlAgV3IAVAIFTICBHNyGkcnoaZVzTq4saTTK6QjTSK6NzIrlcLpbbZSrVXGqipKZqp3WZ7WNz6Goue9V6EMtPk/Pyhf4hbLncPbipXQsX3XVa0zXJ688jDpDbccVf0mF7uxnp529/7sdY937DKvVS8IGGpJWQVcstrnkVGsZcYJaRrndDWSytbC9fU16kV+lAoHkC?AoBACgQKAeUAB3Iq?q?MqgGFQ0jm5ppl0cw6OTGgqKjAjSMIrbWkV+FuM9FbsbVlbiBNnE9sTLJcZ171hj2bdrAjl4sUz5tTlcuWtqtRFXTknPp15fpo3sexr2OR7HJxXNXNF9aKhlWgrxXi52ShpV7b1EENPLxNE6t7p7DWeWq+iiLmEdeDSGqhsVRrhmpbe6rkdZ6Opz20FGrGaWOR29ibTW5jF3sYrW7ssgP1oHmyCGQDICZAQABAoB5gIB3AEV?AKioEZVCjGkrLurDbKbMIqRgVIwN6CK+VcI2PnlY9qOa5E1Ny5U0puVDLb86/A+Fdbnw0DaN7l4zqJ8lHnn0r2M6Lf6yB8x7H5T7hJ7ElzuL2/ZdUAe224Yw/bJVnobfBBUOTj1OhNs73pV469agfqLT4u731/gB7QOOkIZATICKgGVQC?IFeYAB3?QigE?TIomkI9WgqGgC6ALoAukD5FenfcnV+FCK4oBdIFA+pa073d76/cgHsAxkEMgIqAZVAMqgGF?APKFAO4?B?UIAEKPbkEMgGQFy?fIr077f1fcgHHSBvQBrQB9G3p3F3vL9yAeoImQDIDKoBlQMKBheQCZBVyCPNkAyCu+QEyAgDIABNwABuA9maAXcBQAGcwPmVad8v6vuQIy1gHRrAN7MD2Ure5r9f8?Ds?KBlQMKBhQIBMgGQHHSA0gdcgPNU19BSuRtTUxQOcnFbK9rM09WpQrEV2tU0jYoayCSR3NYyRjndW8D0gTICBAogR6muCuiEVQIoRzcUeKZO6u6vuCCAdGNA7NYRXePm9YGgqhACKBNHrAwjOXfkgE0Jmm/cBXMTUgFWL1gc2wJkm8AkKaeUDTmJ5wP81/LWttF82sPXLZd+9mvptv8A4TonPczl9JqKB9Tgu4OMA3rFtDjewWS8YTmsDGw9rK+lbTQ1Ukscuqdup8z3cWXfxk5E3AfD4R/lA49w1iO6x0dywzNTWypWKOyMWrmrXxbRI+PJpZDtOlzGyZt8wV+u4QeH+aw8H2Fr7aLbHUXzF0bH2+hnc7ZRcRm01adDn6Hytblxc888wj6WEsW8NVViyusGJcP0NFHTWd9VTXWmjqn0c1w2kezj7Ic7Rp0yceNM3cVVRxR+I+TlirH9U/Ft0xFWQ1tjo6iofXzyyTzVkdTC1rtnBrdoSnbHq4vLmEeL+krwizWepx1R2G3vwJSXJLZLSvkl7YcxsmtZNWz8tqZ6F3rll5QH6XH/?646tOLMO27ClporvbcWW6KrskciSMq3TVDF2Wt+0ZE1mrRy9GfGAxwrcL/?0cH1DhqpqLbZux7pTQw3KpqGVEmwufOnZ3Cdrdnp3s5yrk4iv03Brwl8IGKeEvFFjqYLTJhbD0r4e2NCk+1dI93cGbR8j43OaxrtrxU43IB/XOkDEjtKLu3L0lHBsDHrvcv1IgtGUp3bVY8/X1FR12KNReNq07iK6o1ulCK23kAo?Ay?RGpkoE2bQLpTMC9IGck0gRrQI7lA/lfDbwK1vCc22wfOLtPRW9Xv7F7F7JbJK7myeGg0q1uadPKB+1wfZbvZcN0VrvF2dfbjTI/bXR8Tad0uqRzmdya5+nQxzWc7flmB/GLh8lirmkxDQ0mLn0uHb/P2ZJQdgxTTNna9Xxa6hz9bmMc7ydOrpA+5dfk70944MrTg67X6SouFie91pvcdO2LZt8mJ0Gt2pmnTnx0Xci5gfpODvAOL8O1NRV4kxjV4lmlhbTxQSRthp42MXU12nORzpPb1JuXf5yo+Pwd8DVywbfL7/X6V2Fr0+olksb6VrO6zqnGdUanP4sebMkyRc88gPybvkrybCWwU+LqqLA09b2xmsnY0bpttp0eM6vQ6dHRyZ7wP1mIuAusuWOcN4ltOI+09JhiCnpbba+wmzaIYeK9jZdqzwkfF5i6egDHymL/g6HAdThm+Mnlud6hkdYIqeF8nf0Ct2HGanFV0jutupCK+18nvg+lwTwZW+hrIdjd6/v8AumpOM2WbLTG71xxNa1U86KB/StwHKVEzKiJK3SnKit83SC02jdrrai8gGtMea7vWFdERMkIN)))?ZIBN3mAmlvmQBoZ6KfACKxnop8AMqxvmT4FGNm3zBE2aeYI21oV0IrQEA5qUZ0BBGAb0gbQiq))))?JuAm4DIAC7gN?G4BuAm4BuAu4Cg?H/9k=%iVBORw0KG;)NSUhEUg?AG4?ACCAgM?ADasxWR)DFBMVEX/6Nn:/+VlZX29va5ksB5)SElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOS?LWyrsxEHLD)AElFTkSuQmCC$/9j/2wBD?cJ.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.n/wQARCACkAIwDACI?RE?hEA/8QAa)QUBAQE)))?gABAwQHBQYIE?BAwEEAgcRDwMFAQ)AC?EDBAUREhMGIhQhIzEyUrMVNUFCUVNiY3JzdHWDkZKht.lMzQ2Q2FkcYKEsrXT8ETCxBZFhZOUov/a?wD?AB?I?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.xbHGEoawBxCFTUFvWVaM2x6SpbOuLDGcckWMQHGeHGGus50wF+b1FlgGYdLScJuHJsuowZvJ96VazmKm0sBrRiGGoeoJmio8IwBPVR7l5HBL33rvzi6LU0ZQ42zMWXmIeitvQo0y5tyd2Xn7RtuzLMMYqubdeFlRgUp4eywcDyiCht6y7QqGpqSYjlcCNheGQBwgOM9Yw7JZfTjDVaXTDab.PXVYuE3Acos0KWMsfDDViji67qL39nWRZFLbFTPRVfumMZMyiAo8FPsjpREAxhl9bzNyxgrxwQxjc+Zm5eZ2tDcvZJXIkrlRuT3Ibk9yJJK5PcmVWrqoKKnlqqgnGGLDjLCRlhMgDgh3SuKnWiJUdUJCJM9PLtE2IfgzRCzXjenuXmm0tsEnb3SQ7fCKmnw/kXq4ZoqiIJoJAlik4EkZYtVYZZEVMdg2+dQEe5tAUBnhxBLhlysoukOQ9zVmwKi1wojChzSg2TJweDmZcWMfy+muidMFxYCwYJMvdEzOvUQ2DTBakda1RWvMNZHNtzR4X3THlluOPB83l5nwS5v+maN5M16q0HlvxZjzx48XGxZONaakhaWS/hJXK6kqSSoIl4e2LCpa20ZqqaerGQmiZmjkjEAwRgAYccMmDrnfTNWLI0boIalq7HVVE8R4g2RIJjmdcLAEZmffJF7BJW3lkaO5i1UN22rqSpJKoiXjtIrAoKl3ryaWKoMowkeEhEZdXhEJhJr6o7orOj1h0NEGzY2lkqZGIMyUx3OPpxEQCMN0/7V6hJWnkPIw4tVNdtq6kqSSqp1dSVJJJJXVzLTgGpoKmAjkjGQR14iwHwg4JKZJEPCSWbwaKWecgRFPX5ZleQtNAIuQCf1VaRR0dNQU4U1LHlRR9DpsXTkRdOciSSmlkM+EmX/9k=%iVBORw0KG;)NSUhEUg?AMg?ABDCAM?ADu8bq3)MFBMVEX::/87L/99H/63he:Os:jR:v/507/7pH:fX/++aO:b/5C/p:0A:D0:4M59PN?AC9klEQVR4XtXa627qMBCFUc+M77nw/m97dFAreWscJg2BOPsfpTJdEp8SQd0QW5sFd8FGgqzdxS4grt2NBrFPC/eD+C7E3w+yGuiRIXYk8Y6QY.yMMSOxN8RshrmcSF2JPGeEH1euCdkUpDpcxDf7GzIeuA3L926N5J4T4iOJNwJEjxEspWID6ND4P2zLY5ueMhjKxIgPvZBmIlE0vx/STJxOQNQmJ5niuCBCHFeRaIT8c6C1OeL6WX+63VkbkbOOc7qwD5k6keCT7yGUAYDTuobkEL6ZCldSBuJ37pjjK8h88slPgyR1D2wdiAIWxrH0nINiLF6FIJDiYZMcGQvkelNSCrnQmYpPUjoRYI+A5IsST4ZMpOGY.biRgQma3VkyGpKAhWvfQTeRtCJ0NmUhAdiU7kfYicDUka0o8EdfshSZ5TF8ezIXPtQBYdCb7fLAgRM3MBXM0YyWGIPE9X11xSEIzk8eN4IE5D7IGED0ESsftdyQDJCoKRRH3HOB2EMMR5CELbKYqCqL9a2Q5C3NkQhki62epIPFjHgDjB6hCiIlGJjAMhqK4HCRAJJhLGgbABwUhUIscgzHwBBCJRieyHVCbKItIIzoQUQHYhU0ND2LQXUgla/ATEmRCMRCdiQygB4DLI0hyLrmUPhIFxGQSj8OqRCSEAXAnBSDARG8LzKBCsIsIDG1LSSJBHc26byMOG0DwOBLOARGxIJ3QRIaJrIKHBQYcWhNGQuf4KL4BgJI0p2hBSH51dC2l8HpwWRPD06yHTqjf9EZLcAJDQgYQdEIh8BEjsQOIdIc4rh3e3hOhIJgOiLyNDQEI/ETv2ZrwFyV+ELAqy7IHk/jchhQme+CLE+W4i9gURJMTM1PlSkb4ImTYTsW9R7Al/DRJXXDQgULs9+hqkIQLSgOTxIBiJ3wmp40E.MJOiKPhIBhJ3AspMhrExXbOgNiSlFoIfw+CMyAg6QWf2VUZHaLGGRWZCvz8E5APrVKW9Pt/WmCkLAKQc/YPKd9C4FftKeo)ASUVORK5CYII=!A%iVBORw0KG;)NSUhEUg?ANM)8CAM?ADLy3+8)GFBMVEX::++Of/8crj4t+/vr2SkZFWVFT/67CB/ywx?AEFklEQVR4XtWbYZOzIBCDN9nF/v9:I6FzBVKGaXyOs0XW5H1ntsYRr2zWiAfWSRgJ4W/6TOzK9k1Ah+NiPWzpWbyJVB49EQsni2xZVpBJHHxbCFdzsTHQPhmNifPj0VNkrBwtpBaYVWTJEwhSafSRcIyJOmr2ZxxCZY5T+IUkoQJlyz0noQpJGnYpG+YVvjncUw4bxHYeqgp30ocEK1isqolYIcRc1DMwtyieE1OEB8awEP2IQCwJSJxQ58Mbx7hMSZDhxsiIjwivM9kXMtkfKtzNLvQsQsKUmxZ3p+5mMnYlsG5PGbbAtLTtiUH0rbBelrNZBif0cZQbDlJPDsEANsWY/OBa5hsikkE73vwNJ6NmEy5ZLcw8XiPxbTtMgPiIxMz0e1MY7VMYfCPIWFQInLX6wKwhgnfeIFi2mBIuU0jgaJiFm68nAaeykGe9B;7V/MLDKpwd0dZu47E9yZ5buQd9tzWIpIKTaV2WUe4eZaLlT62I0aTreYalQqTNmJmW0Tmz9JYc9tgGVWRPFt5OFdvklblHKZ0ENMKt0RICKJEzcvhAtqR8LriVPeSql8DuA5SYoyLKTklikqQheKSg/89h3Sg0QIyuzPINUv2i0VGLW0dCijNQwo3VW5lPNHKFDpShcgQZNICCqs+WG82UYZB+o2yrL5a1RXpYZDh6hko++R+IdEQBbx94iIik3MsGI2seGlbRBibbN+RIyZMJH/JOEOWKhR3YjQFi2DjhdyFARvhu0VRZzz3hsjlesClkOgExFdj/UtKeu9O9deKqjFl2YEH5KQQo3qR4S26d2CUVu2spe2YhpGhF300Jz0nGJUNn+MCFT9EAP0XeiVvZqVaBwRNn07IyQx7QgOECV027xqGMUiBmQ2DeeNHYmIMzdpB3zXMhkAZXUbEW+M6TUSgCoikDejiLCKsxKLTrpPSG2fTBCK6BKDUPea/ijhgTrhq6trS1qQxaRDxfRB4DfvAUikUl9nfLLsO/WhjgrkHXkUQLWKJS3d6TkuWVaookqe+DmPI+lZxBaRCpLO7FqEm8hG/LEmALIoCk0ZhqDUkr9DdKqheObBUSvC8m81JVkklXTam4U2k4HneE5BENlHOrw4K+RZf2HSISVfx8JR813x2IckpPE9obv39hZPX/QmnN0unRQbnayQtshmv4bpbEYOqmSaiUaHluVrmDDwHSstfO+u1aGJCGKOaYDUjC1lcmihq2piJiPYQfr/TEp4f7fzuAM45DzYDUzeRcrC2bN0kO5gMo+UAh8K4vOlf84x65nO1CN59BZqcMy9TJx/d/44o7kX9yuRaL/DhMdkm36fCXYX0zIo2m1Mq6Bo9zEtgqLdx7QozmG/yGTgqEk/xzSmotm9TCv+ZP5nmSSg+teGH9U/EvuFGjU3drs)ASUVORK5CYII=!