Knowledge (XXG)

Adapter pattern

Source đź“ť

36: 412: 463: 214:
An adapter allows two incompatible interfaces to work together. This is the real-world definition for an adapter. Interfaces may be incompatible, but the inner functionality should suit the need. The adapter design pattern allows otherwise incompatible classes to work together by converting the
2445:
Recharging android with MicroUsb MicroUsb connected Recharge started Recharge finished Recharging iPhone with Lightning Lightning connected Recharge started Recharge finished Recharging iPhone with MicroUsb MicroUsb connected Lightning connected Recharge started Recharge finished
401: 451: 1488:. When the clientMethod is called, it will have access to the adaptee instance that allows for accessing the required data of the adaptee and performing operations on that data that generates the desired output. 137:
design patterns that describe how to solve recurring design problems to design flexible and reusable object-oriented software, that is, objects that are easier to implement, change, test, and reuse.
4292:, which can be thought of as applying the adapter pattern, when the high-level class defines its own (adapter) interface to the low-level module (implemented by an adaptee class). 1454:
without having to alter the class hierarchy. In general, it permits a mechanism for arbitrary data flows between objects that can be retrofitted to an existing object hierarchy.
431:
implementing or inheriting both the interface that is expected and the interface that is pre-existing. It is typical for the expected interface to be created as a pure
299: 393:
In this adapter pattern, the adapter contains an instance of the class it wraps. In this situation, the adapter makes calls to the instance of the wrapped
4543: 4474: 4352: 1479:. It should have a constructor method with an adaptee class variable as a parameter. This parameter will be passed to an instance member of 1227:
The advantage can be seen in that, if it is desired to transfer the data in a second format, then look up the different adapter/provider:
613:
Define an intermediary "provider" interface, and write an implementation of that provider interface that wraps the source of the data,
5068: 50: 46: 5176: 5093: 4411: 4866: 154:
Often an (already existing) class can not be reused only because its interface does not conform to the interface clients require.
5041: 4665: 4295: 224: 4849: 4759: 4289: 4889: 4859: 4854: 4536: 4496: 4427: 103: 5134: 4972: 4338: 440: 110:
to be used as another interface. It is often used to make existing classes work with others without modifying their
4749: 532:
However, suppose that the format of the string data must be varied. A compile time solution is to use inheritance:
62: 4957: 4952: 4779: 455: 405: 307: 4456:
Freeman, Eric; Freeman, Elisabeth; Sierra, Kathy; Bates, Bert (2004). Hendrickson, Mike; Loukides, Mike (eds.).
4997: 4962: 4929: 4579: 4529: 4283: 107: 4794: 4899: 4871: 4809: 4774: 4710: 4552: 134: 91: 4876: 4804: 4754: 4589: 298: 5155: 5058: 4904: 4884: 4829: 118: 4457: 411: 4967: 4924: 4919: 4909: 4819: 444: 436: 83: 462: 5007: 4992: 4987: 4844: 4729: 4675: 5129: 5108: 5017: 4914: 4764: 4657: 4609: 4571: 394: 267: 4799: 4642: 4632: 4627: 4599: 4594: 4470: 4466: 4407: 4403: 4392: 4358: 4348: 4344: 257: 228: 99: 223:
An adapter can be used when the wrapper must respect a particular interface and must support
5098: 4839: 4784: 4705: 4695: 4685: 4680: 4305: 4300: 467: 432: 416: 95: 5088: 5034: 5012: 4789: 4744: 4715: 4690: 4670: 4584: 4560: 4310: 597: 5073: 4934: 4637: 4622: 4399: 277: 232: 5170: 4894: 4739: 4700: 4647: 4277: 310: 5150: 5113: 5002: 4977: 4769: 4334: 252:
Converts one interface to another so that it matches what the client is expecting
1464:
When implementing the adapter pattern, for clarity, one can apply the class name
821:
Write an adapter class that returns the specific implementation of the provider:
144:
How can a class be reused that does not have an interface that a client requires?
5103: 5078: 5063: 4982: 4814: 596:
and perhaps create the correctly "formatting" object at runtime by means of the
235:
is used when an easier or simpler interface to an underlying object is desired.
111: 262:
Dynamically adds responsibility to the interface by wrapping the original code
17: 4504: 4435: 231:
makes it possible to add or alter behavior of an interface at run-time, and a
188:
that adapts the interface of an (already existing) class without changing it.
4362: 5083: 428: 4521: 4366: 400: 1436:
In this way, the use of adapters and providers allows multiple "views" by
450: 4390:
Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994).
180:
to work with (reuse) classes that do not have the required interface.
4428:"The Adapter design pattern - Problem, Solution, and Applicability" 3536:"Recharging iPhone with MicroUSB using adapter pattern." 461: 449: 410: 399: 297: 215:
interface of one class into an interface expected by the clients.
157:
The adapter design pattern describes how to solve such problems:
133:
The adapter design pattern is one of the twenty-three well-known
1972:/* exposing the target interface while wrapping source object */ 619:
in this example, and outputs the data formatted as appropriate:
147:
How can classes that have incompatible interfaces work together?
4525: 4394:
Design Patterns: Elements of Reusable Object-Oriented Software
122: 29: 165:
class that converts the (incompatible) interface of a class (
325:
class directly because its interface doesn't conform to the
184:
The key idea in this pattern is to work through a separate
4497:"The Adapter design pattern - Structure and Collaboration" 302:
A sample UML class diagram for the adapter design pattern.
117:
An example is an adapter that converts the interface of a
150:
How can an alternative interface be provided for a class?
3512:"Recharging Android with MicroUSB recharger." 791:// Manipulate the source string into a format required 58: 125:
document into a tree structure that can be displayed.
794:// by the object needing the source object's data 3560:"Recharging iPhone with iPhone recharger." 5143: 5122: 5051: 5026: 4943: 4828: 4728: 4656: 4608: 4570: 4559: 1480: 1474: 1465: 1449: 1443: 1437: 1301: 1295: 977: 971: 910: 904: 614: 496: 490: 484: 4391: 4286:, strongly relevant to the object adapter pattern. 608:A solution using "adapters" proceeds as follows: 140:The adapter design pattern solves problems like: 3986:"Connect the Lightning cable first." 4537: 1473:to the provider implementation; for example, 1294:And if it is desired to output the data from 8: 2371:"Recharging iPhone with Lightning" 2335:"Recharging android with MicroUsb" 970:In code, when wishing to transfer data from 191:Clients don't know whether they work with a 4328: 4326: 2407:"Recharging iPhone with MicroUsb" 4567: 4544: 4530: 4522: 474:A further form of runtime adapter pattern 3809:"Connect the USB cable first." 415:The object adapter pattern expressed in 404:The object adapter pattern expressed in 237: 98:, an alternative naming shared with the 61:by adding descriptive text and removing 4322: 466:The class adapter pattern expressed in 454:The class adapter pattern expressed in 272:Support "composition over inheritance" 2489:"You should implement this." 206:See also the UML class diagram below. 27:Design pattern in computer programming 3782:"Android phone recharging." 1460:Implementation of the adapter pattern 479:Motivation from compile time solution 443:(before JDK 1.8) that do not support 7: 3725:"Android phone connected." 909:with a global registry, so that the 495:with some data, let us suppose some 199:with a class that does not have the 4333:Freeman, Eric; Freeman, Elisabeth; 3959:"Apple phone recharging." 1750:"Connect Lightning first" 427:This adapter pattern uses multiple 3902:"Apple phone connected." 1957:"Connect MicroUsb first" 501:data. A compile time solution is: 25: 376:interface by inheriting from an 282:Provides a simplified interface 34: 5042:Enterprise Integration Patterns 4469:. pp. 243, 252, 258, 260. 4296:Ports and adapters architecture 1633:"Lightning connected" 4290:Dependency inversion principle 4280:Java Design Patterns - Adapter 2083:"MicroUsb connected" 1840:"MicroUsb connected" 357:interface by delegating to an 1: 1924:"Recharge finished" 1717:"Recharge finished" 915:can be looked up at runtime: 195:class directly or through an 1900:"Recharge started" 1693:"Recharge started" 5135:Portland Pattern Repository 363:adaptee.specificOperation() 321:interface cannot reuse the 227:behavior. Alternatively, a 5193: 4459:Head First Design Patterns 4340:Head First Design Patterns 2422:LightningToMicroUsbAdapter 2008:LightningToMicroUsbAdapter 1978:LightningToMicroUsbAdapter 337:class that implements the 169:) into another interface ( 604:Run-time adapter solution 5177:Software design patterns 4760:Event-based asynchronous 4553:Software design patterns 4260:Adapter cable connected. 4254: 3578: 2459:Adapter pattern example. 2453: 1495: 1310: 1228: 1125: 983: 916: 822: 620: 534: 503: 329:interface. Instead, the 4666:Chain of responsibility 4263:Apple phone recharging. 3542:IPhoneMicroUSBRecharger 3323:IPhoneMicroUSBRecharger 1300:as, say, image data in 380:class at compile-time ( 92:software design pattern 63:less pertinent examples 4805:Scheduled-task pattern 4755:Double-checked locking 4337:; Bates, Bert (2004). 4257:Apple phone connected. 2377:rechargeLightningPhone 2209:rechargeLightningPhone 470: 459: 429:polymorphic interfaces 419: 408: 389:Object adapter pattern 341:interface in terms of 317:class that requires a 303: 5156:Architectural pattern 5059:Christopher Alexander 4211:LightningToUsbAdapter 4052:LightningToUsbAdapter 4010:LightningToUsbAdapter 2525:"Lightning" 2413:rechargeMicroUsbPhone 2341:rechargeMicroUsbPhone 2158:rechargeMicroUsbPhone 465: 453: 435:class, especially in 423:Class adapter pattern 414: 403: 301: 119:Document Object Model 4968:Dependency injection 4925:Inversion of control 4920:Data transfer object 4820:Thread-local storage 2513:"MicroUSB" 1476:DAOToProviderAdapter 949:ClassAFormat1Adapter 831:ClassAFormat1Adapter 445:multiple inheritance 361:object at run-time ( 84:software engineering 4973:Intercepting filter 2927:"Android" 2699:NotImplementedError 2651:NotImplementedError 2603:NotImplementedError 2507:"Android" 1367:"format2" 1285:"format2" 1194:"format1" 1123:or more concisely: 1040:"format1" 961:"format1" 382:specificOperation() 372:way implements the 353:way implements the 59:improve the article 5130:The Hillside Group 4915:Data access object 4765:Guarded suspension 4750:Binding properties 2732:"iPhone" 2519:"iPhone" 2462:""" 2456:""" 483:It is desired for 471: 460: 420: 409: 304: 249:Adapter or wrapper 173:) clients require. 161:Define a separate 102:) that allows the 5164: 5163: 4958:Business delegate 4890:Publish–subscribe 4724: 4723: 4476:978-0-596-00712-6 4354:978-0-596-00712-6 333:works through an 294:UML class diagram 286: 285: 100:decorator pattern 80: 79: 16:(Redirected from 5184: 4963:Composite entity 4840:Front controller 4580:Abstract factory 4568: 4546: 4539: 4532: 4523: 4516: 4515: 4513: 4512: 4503:. Archived from 4493: 4487: 4486: 4484: 4483: 4464: 4453: 4447: 4446: 4444: 4443: 4434:. Archived from 4424: 4418: 4417: 4397: 4387: 4381: 4380: 4378: 4377: 4371: 4365:. Archived from 4330: 4306:Wrapper function 4264: 4261: 4258: 4248: 4245: 4242: 4239: 4236: 4233: 4230: 4227: 4224: 4221: 4218: 4215: 4212: 4209: 4206: 4203: 4200: 4197: 4194: 4191: 4188: 4185: 4182: 4179: 4176: 4173: 4170: 4167: 4164: 4161: 4158: 4155: 4152: 4149: 4146: 4143: 4140: 4137: 4134: 4131: 4128: 4125: 4122: 4119: 4118:ConnectLightning 4116: 4113: 4110: 4107: 4104: 4101: 4098: 4095: 4092: 4089: 4086: 4083: 4080: 4077: 4074: 4071: 4068: 4065: 4062: 4059: 4056: 4053: 4050: 4047: 4044: 4041: 4038: 4035: 4032: 4029: 4026: 4023: 4020: 4017: 4014: 4011: 4008: 4005: 4002: 3999: 3996: 3993: 3990: 3987: 3984: 3981: 3978: 3975: 3972: 3969: 3966: 3963: 3960: 3957: 3954: 3951: 3948: 3945: 3942: 3939: 3936: 3933: 3930: 3927: 3924: 3921: 3918: 3915: 3912: 3909: 3906: 3903: 3900: 3897: 3894: 3891: 3888: 3885: 3882: 3879: 3876: 3873: 3870: 3867: 3864: 3863:ConnectLightning 3861: 3858: 3855: 3852: 3849: 3846: 3843: 3840: 3837: 3834: 3831: 3828: 3825: 3822: 3819: 3816: 3813: 3810: 3807: 3804: 3801: 3798: 3795: 3792: 3789: 3786: 3783: 3780: 3777: 3774: 3771: 3768: 3765: 3762: 3759: 3756: 3753: 3750: 3747: 3744: 3741: 3738: 3735: 3732: 3729: 3726: 3723: 3720: 3717: 3714: 3711: 3708: 3705: 3702: 3699: 3696: 3693: 3690: 3687: 3684: 3681: 3678: 3675: 3672: 3669: 3666: 3663: 3660: 3657: 3654: 3651: 3648: 3645: 3642: 3639: 3636: 3633: 3630: 3627: 3624: 3621: 3618: 3615: 3612: 3609: 3606: 3603: 3600: 3597: 3596:ConnectLightning 3594: 3591: 3588: 3585: 3582: 3570: 3567: 3564: 3561: 3558: 3555: 3552: 3549: 3546: 3543: 3540: 3537: 3534: 3531: 3528: 3525: 3522: 3519: 3518:AndroidRecharger 3516: 3513: 3510: 3507: 3504: 3501: 3498: 3495: 3492: 3489: 3486: 3483: 3480: 3477: 3474: 3471: 3468: 3465: 3462: 3459: 3456: 3453: 3450: 3447: 3444: 3441: 3438: 3435: 3432: 3429: 3426: 3423: 3420: 3417: 3414: 3411: 3408: 3405: 3402: 3399: 3396: 3393: 3390: 3387: 3384: 3381: 3378: 3375: 3372: 3369: 3366: 3363: 3360: 3357: 3354: 3351: 3348: 3345: 3342: 3339: 3336: 3333: 3330: 3327: 3324: 3321: 3318: 3315: 3312: 3309: 3306: 3303: 3300: 3297: 3294: 3291: 3288: 3285: 3282: 3279: 3276: 3273: 3270: 3267: 3264: 3261: 3258: 3255: 3252: 3249: 3246: 3245:AndroidRecharger 3243: 3240: 3237: 3234: 3231: 3228: 3225: 3222: 3219: 3216: 3213: 3210: 3207: 3204: 3201: 3198: 3195: 3192: 3189: 3186: 3183: 3180: 3177: 3174: 3171: 3168: 3165: 3162: 3159: 3156: 3153: 3150: 3147: 3144: 3141: 3138: 3135: 3132: 3129: 3126: 3123: 3120: 3117: 3114: 3111: 3108: 3105: 3102: 3099: 3096: 3093: 3090: 3087: 3084: 3081: 3078: 3075: 3072: 3069: 3066: 3063: 3060: 3057: 3054: 3051: 3048: 3045: 3042: 3039: 3036: 3033: 3030: 3027: 3024: 3021: 3018: 3015: 3012: 3009: 3006: 3003: 3000: 2997: 2994: 2991: 2988: 2985: 2982: 2979: 2976: 2973: 2970: 2967: 2964: 2961: 2958: 2955: 2952: 2949: 2946: 2943: 2940: 2937: 2934: 2931: 2928: 2925: 2922: 2919: 2916: 2913: 2910: 2907: 2904: 2901: 2898: 2895: 2892: 2889: 2886: 2883: 2880: 2877: 2874: 2871: 2868: 2865: 2862: 2859: 2856: 2853: 2850: 2847: 2844: 2841: 2838: 2835: 2832: 2829: 2826: 2823: 2820: 2817: 2814: 2811: 2808: 2805: 2802: 2799: 2796: 2793: 2790: 2787: 2784: 2781: 2778: 2775: 2772: 2769: 2766: 2763: 2760: 2757: 2754: 2751: 2748: 2745: 2742: 2739: 2736: 2733: 2730: 2727: 2724: 2721: 2718: 2715: 2712: 2709: 2706: 2703: 2700: 2697: 2694: 2691: 2688: 2685: 2682: 2679: 2676: 2673: 2672:RechargeTemplate 2670: 2667: 2664: 2661: 2658: 2655: 2652: 2649: 2646: 2643: 2640: 2637: 2634: 2631: 2628: 2625: 2624:RechargeTemplate 2622: 2619: 2616: 2613: 2610: 2607: 2604: 2601: 2598: 2595: 2592: 2589: 2586: 2583: 2580: 2577: 2574: 2571: 2568: 2565: 2564:RechargeTemplate 2562: 2559: 2556: 2553: 2550: 2547: 2544: 2543:connected." 2541: 2538: 2535: 2532: 2529: 2526: 2523: 2520: 2517: 2514: 2511: 2508: 2505: 2502: 2499: 2496: 2493: 2490: 2487: 2484: 2481: 2478: 2475: 2472: 2469: 2466: 2463: 2460: 2457: 2438: 2435: 2432: 2429: 2426: 2423: 2420: 2417: 2414: 2411: 2408: 2405: 2402: 2399: 2396: 2393: 2390: 2387: 2384: 2381: 2378: 2375: 2372: 2369: 2366: 2363: 2360: 2357: 2354: 2351: 2348: 2345: 2342: 2339: 2336: 2333: 2330: 2327: 2324: 2321: 2318: 2315: 2312: 2309: 2306: 2303: 2300: 2297: 2294: 2291: 2288: 2285: 2282: 2279: 2276: 2273: 2270: 2267: 2264: 2261: 2258: 2255: 2252: 2249: 2246: 2243: 2240: 2237: 2234: 2231: 2228: 2225: 2222: 2219: 2216: 2213: 2210: 2207: 2204: 2201: 2198: 2195: 2192: 2189: 2186: 2183: 2180: 2177: 2174: 2171: 2168: 2165: 2162: 2159: 2156: 2153: 2150: 2147: 2144: 2141: 2138: 2135: 2132: 2129: 2126: 2123: 2120: 2117: 2114: 2111: 2108: 2105: 2102: 2099: 2096: 2093: 2090: 2087: 2084: 2081: 2078: 2075: 2072: 2069: 2066: 2063: 2060: 2057: 2054: 2051: 2048: 2045: 2042: 2039: 2036: 2033: 2030: 2027: 2024: 2021: 2018: 2015: 2012: 2009: 2006: 2003: 2000: 1997: 1994: 1991: 1988: 1985: 1982: 1979: 1976: 1973: 1970: 1967: 1964: 1961: 1958: 1955: 1952: 1949: 1946: 1943: 1940: 1937: 1934: 1931: 1928: 1925: 1922: 1919: 1916: 1913: 1910: 1907: 1904: 1901: 1898: 1895: 1892: 1889: 1886: 1883: 1880: 1877: 1874: 1871: 1868: 1865: 1862: 1859: 1856: 1853: 1850: 1847: 1844: 1841: 1838: 1835: 1832: 1829: 1826: 1823: 1820: 1817: 1814: 1811: 1808: 1805: 1802: 1799: 1796: 1793: 1790: 1787: 1784: 1781: 1778: 1775: 1772: 1769: 1766: 1763: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1730: 1727: 1724: 1721: 1718: 1715: 1712: 1709: 1706: 1703: 1700: 1697: 1694: 1691: 1688: 1685: 1682: 1679: 1676: 1673: 1670: 1667: 1664: 1661: 1658: 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1631: 1628: 1625: 1622: 1619: 1616: 1613: 1610: 1607: 1604: 1601: 1598: 1595: 1592: 1589: 1586: 1583: 1580: 1577: 1574: 1571: 1568: 1565: 1562: 1559: 1556: 1553: 1550: 1547: 1544: 1541: 1538: 1535: 1532: 1529: 1526: 1523: 1520: 1517: 1514: 1511: 1508: 1505: 1502: 1499: 1487: 1486: 1483: 1478: 1477: 1472: 1471: 1468: 1453: 1452: 1447: 1446: 1441: 1440: 1431: 1428: 1425: 1422: 1419: 1416: 1413: 1410: 1407: 1404: 1401: 1398: 1395: 1392: 1389: 1386: 1383: 1380: 1377: 1374: 1371: 1368: 1365: 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1337:getAdapterFromTo 1335: 1332: 1329: 1326: 1323: 1320: 1317: 1314: 1308: 1307: 1304: 1299: 1298: 1289: 1286: 1283: 1280: 1277: 1274: 1271: 1268: 1265: 1262: 1259: 1256: 1255:getAdapterFromTo 1253: 1250: 1247: 1244: 1241: 1238: 1235: 1232: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1201: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1164:getAdapterFromTo 1162: 1159: 1156: 1153: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1119: 1116: 1113: 1110: 1107: 1104: 1101: 1098: 1095: 1092: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1010:getAdapterFromTo 1008: 1005: 1002: 999: 996: 993: 990: 987: 981: 980: 975: 974: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 914: 913: 908: 907: 898: 895: 892: 889: 886: 883: 880: 877: 874: 871: 868: 865: 862: 859: 856: 853: 850: 847: 844: 841: 838: 835: 832: 829: 826: 816: 813: 810: 807: 804: 801: 798: 795: 792: 789: 786: 783: 780: 777: 774: 771: 768: 765: 762: 759: 756: 753: 750: 747: 744: 741: 738: 735: 732: 729: 726: 723: 720: 717: 714: 711: 708: 705: 702: 699: 696: 693: 690: 687: 684: 681: 678: 675: 672: 669: 666: 663: 660: 657: 654: 651: 648: 645: 642: 639: 636: 633: 630: 627: 624: 618: 617: 592: 589: 586: 583: 580: 577: 574: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 528: 525: 522: 519: 516: 513: 510: 507: 500: 499: 494: 493: 488: 487: 383: 379: 375: 371: 364: 360: 356: 352: 344: 340: 336: 332: 328: 324: 320: 316: 238: 202: 198: 194: 187: 179: 176:Work through an 172: 168: 164: 75: 72: 66: 38: 37: 30: 21: 5192: 5191: 5187: 5186: 5185: 5183: 5182: 5181: 5167: 5166: 5165: 5160: 5139: 5118: 5109:Douglas Schmidt 5089:Ward Cunningham 5047: 5035:Design Patterns 5022: 5013:Method chaining 4945: 4939: 4900:Service locator 4831: 4824: 4795:Read–write lock 4731: 4720: 4711:Template method 4652: 4604: 4562: 4555: 4550: 4520: 4519: 4510: 4508: 4495: 4494: 4490: 4481: 4479: 4477: 4465:. Vol. 1. 4462: 4455: 4454: 4450: 4441: 4439: 4426: 4425: 4421: 4414: 4389: 4388: 4384: 4375: 4373: 4369: 4355: 4347:. p. 244. 4332: 4331: 4324: 4319: 4311:Wrapper library 4274: 4268: 4266: 4265: 4262: 4259: 4256: 4250: 4249: 4246: 4243: 4240: 4237: 4234: 4231: 4228: 4225: 4222: 4219: 4216: 4213: 4210: 4207: 4204: 4201: 4198: 4195: 4192: 4189: 4186: 4183: 4181:ILightningPhone 4180: 4177: 4174: 4171: 4168: 4165: 4162: 4159: 4156: 4153: 4150: 4147: 4144: 4141: 4138: 4135: 4132: 4129: 4126: 4123: 4120: 4117: 4114: 4111: 4108: 4105: 4102: 4099: 4096: 4093: 4090: 4087: 4084: 4081: 4078: 4075: 4072: 4069: 4066: 4063: 4060: 4058:ILightningPhone 4057: 4054: 4051: 4048: 4045: 4042: 4039: 4036: 4033: 4030: 4028:ILightningPhone 4027: 4024: 4021: 4018: 4015: 4012: 4009: 4006: 4003: 4000: 3997: 3994: 3991: 3988: 3985: 3982: 3979: 3976: 3973: 3970: 3967: 3964: 3961: 3958: 3955: 3952: 3949: 3946: 3943: 3940: 3937: 3934: 3931: 3928: 3925: 3922: 3919: 3916: 3913: 3910: 3907: 3904: 3901: 3898: 3895: 3892: 3889: 3886: 3883: 3880: 3877: 3874: 3871: 3868: 3865: 3862: 3859: 3856: 3853: 3850: 3847: 3844: 3841: 3839:ILightningPhone 3838: 3835: 3832: 3829: 3826: 3823: 3820: 3817: 3814: 3811: 3808: 3805: 3802: 3799: 3796: 3793: 3790: 3787: 3784: 3781: 3778: 3775: 3772: 3769: 3766: 3763: 3760: 3757: 3754: 3751: 3748: 3745: 3742: 3739: 3736: 3733: 3730: 3727: 3724: 3721: 3718: 3715: 3712: 3709: 3706: 3703: 3700: 3697: 3694: 3691: 3688: 3685: 3682: 3679: 3676: 3673: 3670: 3667: 3664: 3661: 3658: 3655: 3652: 3649: 3646: 3643: 3640: 3637: 3634: 3631: 3628: 3625: 3622: 3619: 3616: 3613: 3610: 3607: 3604: 3601: 3598: 3595: 3592: 3589: 3587:ILightningPhone 3586: 3583: 3580: 3577: 3572: 3571: 3568: 3566:IPhoneRecharger 3565: 3562: 3559: 3556: 3553: 3550: 3547: 3544: 3541: 3538: 3535: 3532: 3529: 3526: 3523: 3520: 3517: 3514: 3511: 3508: 3505: 3502: 3499: 3496: 3493: 3490: 3487: 3484: 3481: 3478: 3475: 3472: 3469: 3466: 3463: 3460: 3457: 3454: 3451: 3448: 3445: 3442: 3439: 3436: 3433: 3431:IPhoneRecharger 3430: 3427: 3424: 3421: 3418: 3415: 3412: 3409: 3406: 3403: 3400: 3397: 3394: 3391: 3388: 3385: 3382: 3379: 3376: 3373: 3370: 3367: 3364: 3361: 3358: 3355: 3352: 3349: 3346: 3343: 3340: 3337: 3334: 3331: 3328: 3325: 3322: 3319: 3316: 3313: 3310: 3307: 3304: 3301: 3298: 3295: 3292: 3289: 3286: 3283: 3280: 3277: 3274: 3271: 3268: 3265: 3262: 3259: 3256: 3253: 3250: 3247: 3244: 3241: 3238: 3235: 3232: 3229: 3226: 3223: 3220: 3217: 3214: 3211: 3208: 3205: 3202: 3199: 3196: 3193: 3190: 3187: 3184: 3181: 3178: 3175: 3172: 3169: 3166: 3163: 3160: 3157: 3154: 3151: 3148: 3145: 3142: 3139: 3136: 3133: 3130: 3127: 3124: 3121: 3118: 3115: 3112: 3109: 3106: 3103: 3100: 3097: 3094: 3091: 3088: 3085: 3082: 3079: 3076: 3073: 3070: 3067: 3064: 3061: 3058: 3055: 3052: 3049: 3046: 3043: 3040: 3037: 3034: 3031: 3028: 3025: 3022: 3019: 3016: 3013: 3010: 3007: 3004: 3001: 2998: 2995: 2992: 2989: 2986: 2983: 2980: 2977: 2974: 2971: 2968: 2965: 2962: 2959: 2956: 2953: 2950: 2947: 2944: 2941: 2938: 2935: 2932: 2929: 2926: 2923: 2920: 2917: 2914: 2911: 2908: 2905: 2902: 2899: 2896: 2893: 2890: 2887: 2884: 2881: 2878: 2875: 2872: 2869: 2866: 2863: 2860: 2857: 2854: 2851: 2848: 2845: 2842: 2839: 2836: 2833: 2830: 2827: 2824: 2821: 2818: 2815: 2812: 2809: 2806: 2803: 2800: 2797: 2794: 2791: 2788: 2785: 2782: 2779: 2776: 2773: 2770: 2767: 2764: 2761: 2758: 2755: 2752: 2749: 2746: 2743: 2740: 2737: 2734: 2731: 2728: 2725: 2722: 2719: 2716: 2713: 2710: 2707: 2705:NOT_IMPLEMENTED 2704: 2701: 2698: 2695: 2692: 2689: 2686: 2683: 2680: 2678:@abstractmethod 2677: 2674: 2671: 2668: 2665: 2662: 2659: 2657:NOT_IMPLEMENTED 2656: 2653: 2650: 2647: 2644: 2641: 2638: 2635: 2632: 2630:@abstractmethod 2629: 2626: 2623: 2620: 2617: 2614: 2611: 2609:NOT_IMPLEMENTED 2608: 2605: 2602: 2599: 2596: 2593: 2590: 2587: 2584: 2582:@abstractmethod 2581: 2578: 2575: 2572: 2569: 2566: 2563: 2560: 2557: 2554: 2551: 2548: 2545: 2542: 2539: 2536: 2533: 2530: 2527: 2524: 2521: 2518: 2515: 2512: 2509: 2506: 2503: 2500: 2497: 2494: 2491: 2488: 2485: 2483:NOT_IMPLEMENTED 2482: 2479: 2476: 2473: 2470: 2467: 2464: 2461: 2458: 2455: 2452: 2447: 2440: 2439: 2436: 2433: 2430: 2427: 2424: 2421: 2418: 2415: 2412: 2409: 2406: 2403: 2400: 2397: 2394: 2391: 2388: 2385: 2382: 2379: 2376: 2373: 2370: 2367: 2364: 2361: 2358: 2355: 2352: 2349: 2346: 2343: 2340: 2337: 2334: 2331: 2328: 2325: 2322: 2319: 2316: 2313: 2310: 2307: 2304: 2301: 2298: 2295: 2292: 2289: 2286: 2283: 2280: 2277: 2274: 2271: 2268: 2265: 2262: 2259: 2256: 2253: 2250: 2247: 2244: 2241: 2238: 2235: 2232: 2229: 2226: 2223: 2220: 2217: 2215:ILightningPhone 2214: 2211: 2208: 2205: 2202: 2199: 2196: 2193: 2190: 2187: 2184: 2181: 2178: 2175: 2172: 2169: 2166: 2163: 2160: 2157: 2154: 2151: 2148: 2145: 2142: 2139: 2136: 2133: 2130: 2127: 2124: 2121: 2118: 2115: 2112: 2109: 2106: 2103: 2100: 2097: 2094: 2091: 2088: 2085: 2082: 2079: 2076: 2073: 2070: 2067: 2064: 2061: 2058: 2055: 2052: 2049: 2046: 2043: 2040: 2037: 2034: 2031: 2028: 2025: 2022: 2019: 2016: 2014:ILightningPhone 2013: 2010: 2007: 2004: 2001: 1998: 1996:ILightningPhone 1995: 1992: 1989: 1986: 1983: 1980: 1977: 1974: 1971: 1968: 1965: 1962: 1959: 1956: 1953: 1950: 1947: 1944: 1941: 1938: 1935: 1932: 1929: 1926: 1923: 1920: 1917: 1914: 1911: 1908: 1905: 1902: 1899: 1896: 1893: 1890: 1887: 1884: 1881: 1878: 1875: 1872: 1869: 1866: 1863: 1860: 1857: 1854: 1851: 1848: 1845: 1842: 1839: 1836: 1833: 1830: 1827: 1824: 1821: 1818: 1815: 1812: 1809: 1806: 1803: 1800: 1797: 1794: 1791: 1788: 1785: 1782: 1779: 1776: 1773: 1770: 1767: 1764: 1761: 1758: 1755: 1752: 1749: 1746: 1743: 1740: 1737: 1734: 1731: 1728: 1725: 1722: 1719: 1716: 1713: 1710: 1707: 1704: 1701: 1698: 1695: 1692: 1689: 1686: 1683: 1680: 1677: 1674: 1671: 1668: 1665: 1662: 1659: 1656: 1653: 1650: 1647: 1644: 1641: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1617: 1614: 1611: 1608: 1605: 1602: 1599: 1596: 1593: 1590: 1587: 1584: 1581: 1578: 1575: 1572: 1569: 1567:ILightningPhone 1566: 1563: 1560: 1557: 1554: 1551: 1548: 1545: 1542: 1539: 1536: 1533: 1530: 1527: 1524: 1521: 1518: 1515: 1512: 1509: 1506: 1503: 1501:ILightningPhone 1500: 1497: 1494: 1484: 1481: 1475: 1469: 1466: 1462: 1457: 1450: 1444: 1438: 1433: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1305: 1302: 1296: 1291: 1290: 1287: 1284: 1281: 1278: 1275: 1272: 1269: 1266: 1263: 1260: 1257: 1254: 1251: 1248: 1245: 1242: 1239: 1236: 1233: 1230: 1224: 1223: 1220: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1184: 1181: 1178: 1175: 1172: 1169: 1166: 1163: 1160: 1157: 1154: 1151: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1121: 1120: 1117: 1114: 1111: 1108: 1105: 1102: 1099: 1096: 1093: 1090: 1087: 1084: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1048: 1045: 1042: 1039: 1036: 1033: 1030: 1027: 1024: 1021: 1018: 1015: 1012: 1009: 1006: 1003: 1000: 997: 994: 991: 988: 985: 978: 972: 967: 966: 963: 960: 957: 954: 951: 948: 945: 942: 939: 936: 933: 931:registerAdapter 930: 927: 924: 921: 918: 911: 905: 900: 899: 896: 893: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 818: 817: 814: 811: 808: 805: 802: 799: 796: 793: 790: 787: 784: 781: 778: 775: 772: 769: 766: 763: 760: 757: 754: 751: 748: 745: 742: 739: 736: 733: 730: 727: 724: 721: 718: 715: 712: 709: 706: 703: 700: 697: 694: 691: 688: 685: 682: 679: 676: 673: 670: 667: 664: 661: 658: 655: 652: 649: 646: 643: 640: 637: 634: 631: 628: 625: 622: 615: 606: 598:factory pattern 594: 593: 590: 587: 584: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 530: 529: 526: 523: 520: 517: 514: 511: 508: 505: 497: 491: 485: 481: 476: 425: 391: 381: 377: 373: 369: 362: 358: 354: 350: 342: 338: 334: 330: 326: 322: 318: 314: 296: 291: 221: 212: 200: 196: 192: 185: 177: 170: 166: 162: 131: 106:of an existing 94:(also known as 88:adapter pattern 76: 70: 67: 56: 39: 35: 28: 23: 22: 18:Wrapper pattern 15: 12: 11: 5: 5190: 5188: 5180: 5179: 5169: 5168: 5162: 5161: 5159: 5158: 5153: 5147: 5145: 5141: 5140: 5138: 5137: 5132: 5126: 5124: 5120: 5119: 5117: 5116: 5111: 5106: 5101: 5096: 5091: 5086: 5081: 5076: 5074:John Vlissides 5071: 5066: 5061: 5055: 5053: 5049: 5048: 5046: 5045: 5038: 5030: 5028: 5024: 5023: 5021: 5020: 5015: 5010: 5005: 5000: 4995: 4990: 4985: 4980: 4975: 4970: 4965: 4960: 4955: 4949: 4947: 4941: 4940: 4938: 4937: 4932: 4927: 4922: 4917: 4912: 4907: 4902: 4897: 4892: 4887: 4882: 4874: 4869: 4864: 4863: 4862: 4857: 4847: 4842: 4836: 4834: 4826: 4825: 4823: 4822: 4817: 4812: 4807: 4802: 4797: 4792: 4787: 4782: 4777: 4772: 4767: 4762: 4757: 4752: 4747: 4742: 4736: 4734: 4726: 4725: 4722: 4721: 4719: 4718: 4713: 4708: 4703: 4698: 4693: 4688: 4683: 4678: 4673: 4668: 4662: 4660: 4654: 4653: 4651: 4650: 4645: 4640: 4635: 4630: 4625: 4620: 4614: 4612: 4606: 4605: 4603: 4602: 4597: 4592: 4590:Factory method 4587: 4582: 4576: 4574: 4565: 4557: 4556: 4551: 4549: 4548: 4541: 4534: 4526: 4518: 4517: 4488: 4475: 4467:O'Reilly Media 4448: 4419: 4412: 4400:Addison Wesley 4382: 4353: 4345:O'Reilly Media 4321: 4320: 4318: 4315: 4314: 4313: 4308: 4303: 4298: 4293: 4287: 4281: 4273: 4270: 4255: 4148:lightningPhone 4112:lightningPhone 4082:lightningPhone 4076:lightningPhone 4061:lightningPhone 4031:lightningPhone 3579: 3576: 3573: 3218:POWER_ADAPTERS 3095:POWER_ADAPTERS 3008:POWER_ADAPTERS 2900:POWER_ADAPTERS 2813:POWER_ADAPTERS 2552:"Connect 2498:POWER_ADAPTERS 2480:abstractmethod 2454: 2451: 2448: 2444: 2164:IMicroUsbPhone 2122:lightningPhone 2089:lightningPhone 2038:lightningPhone 2032:lightningPhone 2017:lightningPhone 1999:lightningPhone 1984:IMicroUsbPhone 1774:IMicroUsbPhone 1531:IMicroUsbPhone 1496: 1493: 1490: 1461: 1458: 1456: 1455: 1434: 1322:AdapterFactory 1311: 1292: 1273:StringProvider 1240:AdapterFactory 1229: 1225: 1182:StringProvider 1149:AdapterFactory 1143:StringProvider 1126: 1058:StringProvider 1046:StringProvider 1028:StringProvider 995:AdapterFactory 984: 968: 919:AdapterFactory 917: 901: 823: 819: 662:StringProvider 629:StringProvider 621: 610: 605: 602: 535: 504: 480: 477: 475: 472: 424: 421: 390: 387: 386: 385: 366: 351:object adapter 295: 292: 290: 287: 284: 283: 280: 274: 273: 270: 264: 263: 260: 254: 253: 250: 246: 245: 242: 220: 217: 211: 208: 182: 181: 174: 152: 151: 148: 145: 130: 127: 78: 77: 42: 40: 33: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 5189: 5178: 5175: 5174: 5172: 5157: 5154: 5152: 5149: 5148: 5146: 5142: 5136: 5133: 5131: 5128: 5127: 5125: 5121: 5115: 5112: 5110: 5107: 5105: 5102: 5100: 5099:Robert Martin 5097: 5095: 5094:Martin Fowler 5092: 5090: 5087: 5085: 5082: 5080: 5077: 5075: 5072: 5070: 5069:Ralph Johnson 5067: 5065: 5062: 5060: 5057: 5056: 5054: 5050: 5044: 5043: 5039: 5037: 5036: 5032: 5031: 5029: 5025: 5019: 5016: 5014: 5011: 5009: 5006: 5004: 5001: 4999: 4996: 4994: 4991: 4989: 4986: 4984: 4981: 4979: 4976: 4974: 4971: 4969: 4966: 4964: 4961: 4959: 4956: 4954: 4951: 4950: 4948: 4942: 4936: 4933: 4931: 4928: 4926: 4923: 4921: 4918: 4916: 4913: 4911: 4908: 4906: 4905:Active record 4903: 4901: 4898: 4896: 4895:Naked objects 4893: 4891: 4888: 4886: 4885:Specification 4883: 4881: 4879: 4875: 4873: 4870: 4868: 4865: 4861: 4858: 4856: 4853: 4852: 4851: 4848: 4846: 4843: 4841: 4838: 4837: 4835: 4833: 4830:Architectural 4827: 4821: 4818: 4816: 4813: 4811: 4808: 4806: 4803: 4801: 4798: 4796: 4793: 4791: 4788: 4786: 4783: 4781: 4778: 4776: 4773: 4771: 4768: 4766: 4763: 4761: 4758: 4756: 4753: 4751: 4748: 4746: 4743: 4741: 4740:Active object 4738: 4737: 4735: 4733: 4727: 4717: 4714: 4712: 4709: 4707: 4704: 4702: 4699: 4697: 4694: 4692: 4689: 4687: 4684: 4682: 4679: 4677: 4674: 4672: 4669: 4667: 4664: 4663: 4661: 4659: 4655: 4649: 4646: 4644: 4641: 4639: 4636: 4634: 4631: 4629: 4626: 4624: 4621: 4619: 4616: 4615: 4613: 4611: 4607: 4601: 4598: 4596: 4593: 4591: 4588: 4586: 4583: 4581: 4578: 4577: 4575: 4573: 4569: 4566: 4564: 4558: 4554: 4547: 4542: 4540: 4535: 4533: 4528: 4527: 4524: 4507:on 2017-08-28 4506: 4502: 4501:w3sDesign.com 4498: 4492: 4489: 4478: 4472: 4468: 4461: 4460: 4452: 4449: 4438:on 2017-08-28 4437: 4433: 4432:w3sDesign.com 4429: 4423: 4420: 4415: 4413:0-201-63361-2 4409: 4405: 4401: 4396: 4395: 4386: 4383: 4372:on 2013-05-04 4368: 4364: 4360: 4356: 4350: 4346: 4342: 4341: 4336: 4335:Sierra, Kathy 4329: 4327: 4323: 4316: 4312: 4309: 4307: 4304: 4302: 4299: 4297: 4294: 4291: 4288: 4285: 4282: 4279: 4276: 4275: 4271: 4269: 4253: 3574: 3482:use_lightning 3416:phone_adapter 3404:use_micro_usb 3398:phone_adapter 3374:IPhoneAdapter 3368:phone_adapter 3296:use_micro_usb 3236:use_lightning 3188:use_micro_usb 3110:FormatAndroid 3104:IPhoneAdapter 3083:CONNECT_FIRST 2963:use_micro_usb 2915:FormatAndroid 2888:CONNECT_FIRST 2768:use_lightning 2684:use_micro_usb 2666:FormatAndroid 2636:use_lightning 2546:CONNECT_FIRST 2449: 2443: 1491: 1489: 1459: 1435: 1385:ImageProvider 1373:ImageProvider 1355:ImageProvider 1293: 1226: 1218:getStringData 1134:setStringData 1124: 1109:setStringData 1097:getStringData 969: 903:Register the 902: 876:ClassAFormat1 820: 755:getStringData 731:getStringData 689:ClassAFormat1 656:ClassAFormat1 641:getStringData 612: 611: 609: 603: 601: 599: 564:getStringData 543:Format1ClassA 533: 524:getStringData 512:setStringData 502: 478: 473: 469: 464: 457: 452: 448: 446: 442: 438: 434: 430: 422: 418: 413: 407: 402: 398: 396: 388: 370:class adapter 367: 348: 347: 346: 312: 311:class diagram 309: 306:In the above 300: 293: 288: 281: 279: 276: 275: 271: 269: 266: 265: 261: 259: 256: 255: 251: 248: 247: 243: 240: 239: 236: 234: 230: 226: 218: 216: 209: 207: 204: 189: 175: 160: 159: 158: 155: 149: 146: 143: 142: 141: 138: 136: 128: 126: 124: 120: 115: 113: 109: 105: 101: 97: 93: 89: 85: 74: 64: 60: 54: 52: 48: 43:This article 41: 32: 31: 19: 5151:Anti-pattern 5114:Linda Rising 5040: 5033: 4978:Lazy loading 4910:Identity map 4877: 4617: 4561:Gang of Four 4509:. Retrieved 4505:the original 4500: 4491: 4480:. Retrieved 4458: 4451: 4440:. Retrieved 4436:the original 4431: 4422: 4393: 4385: 4374:. Retrieved 4367:the original 4339: 4267: 4251: 4235:adapterCable 4223:adapterCable 4202:adapterCable 3656:AndroidPhone 2720:FormatIPhone 2618:FormatIPhone 2558:first." 2441: 2233:useLightning 2095:useLightning 1594:useLightning 1519:useLightning 1463: 1122: 607: 595: 531: 482: 447:of classes. 426: 392: 305: 222: 213: 205: 190: 183: 156: 153: 139: 135:Gang of Four 132: 116: 87: 81: 71:January 2011 68: 57:Please help 45:may contain 44: 5123:Communities 5104:Jim Coplien 5079:Grady Booch 5064:Erich Gamma 5008:Type tunnel 4993:Object pool 4988:Null object 4983:Mock object 4845:Interceptor 4815:Thread pool 4730:Concurrency 4676:Interpreter 4463:(paperback) 4402:. pp.  4370:(paperback) 4043:isConnected 3938:isConnected 3878:isConnected 3851:isConnected 3761:isConnected 3701:isConnected 3674:isConnected 2182:useMicroUsb 2146:AdapterDemo 2056:useMicroUsb 1801:useMicroUsb 1549:useMicroUsb 1328:getInstance 1246:getInstance 1155:getInstance 1001:getInstance 925:getInstance 800:sourceValue 782:sourceValue 225:polymorphic 203:interface. 112:source code 5018:Delegation 4953:Blackboard 4658:Behavioral 4610:Structural 4572:Creational 4511:2017-08-12 4482:2012-07-02 4442:2017-08-12 4376:2013-04-30 4317:References 4284:Delegation 4229:ConnectUsb 4217:applePhone 4193:ApplePhone 4184:applePhone 4097:ConnectUsb 3833:ApplePhone 3686:ConnectUsb 3629:ConnectUsb 1981:implements 1771:implements 1564:implements 659:implements 489:to supply 268:Delegation 210:Definition 51:irrelevant 5084:Kent Beck 4810:Semaphore 4800:Scheduler 4643:Flyweight 4633:Decorator 4628:Composite 4600:Singleton 4595:Prototype 4363:809772256 4199:IUsbPhone 4016:IUsbPhone 3980:WriteLine 3953:WriteLine 3896:WriteLine 3803:WriteLine 3776:WriteLine 3719:WriteLine 3662:IUsbPhone 3620:IUsbPhone 3617:interface 3584:interface 3206:CONNECTED 3038:connector 2996:CONNECTED 2981:connector 2951:connector 2843:connector 2801:CONNECTED 2786:connector 2756:connector 2570:metaclass 2531:CONNECTED 2104:@Override 2047:@Override 1873:connector 1849:@Override 1810:connector 1792:@Override 1786:connector 1666:connector 1642:@Override 1603:connector 1585:@Override 1579:connector 1528:interface 1498:interface 982:, write: 626:interface 555:@Override 437:languages 433:interface 289:Structure 258:Decorator 229:decorator 104:interface 47:excessive 5171:Category 5144:See also 4946:patterns 4832:patterns 4785:Proactor 4732:patterns 4706:Strategy 4696:Observer 4686:Mediator 4681:Iterator 4563:patterns 4272:See also 4241:Recharge 4154:Recharge 4133:Recharge 4025:readonly 3917:Recharge 3740:Recharge 3638:Recharge 3605:Recharge 3500:recharge 3440:__init__ 3422:recharge 3332:__init__ 3314:recharge 3254:__init__ 3179:recharge 3155:recharge 3119:__init__ 3053:RECHARGE 3017:recharge 2933:__init__ 2921:__name__ 2858:RECHARGE 2822:recharge 2738:__init__ 2726:__name__ 2588:recharge 2492:RECHARGE 2245:recharge 2194:recharge 2128:recharge 2113:recharge 1858:recharge 1651:recharge 1540:recharge 1510:recharge 1427:getImage 1421:provider 1415:setImage 1376:provider 1091:provider 1049:provider 888:anObject 861:anObject 582:toString 439:such as 129:Overview 53:examples 4998:Servant 4930:Model 2 4790:Reactor 4780:Monitor 4745:Balking 4716:Visitor 4691:Memento 4671:Command 4618:Adapter 4585:Builder 4278:Adapter 4252:Output: 4037:private 4022:private 3974:Console 3947:Console 3890:Console 3845:private 3797:Console 3770:Console 3713:Console 3668:private 3278:Android 2909:Android 2576:ABCMeta 2474:ABCMeta 2442:Output 2401:println 2365:println 2347:android 2329:println 2293:Android 2284:android 2281:Android 2077:println 1990:private 1951:println 1918:println 1894:println 1834:println 1783:boolean 1780:private 1768:Android 1744:println 1711:println 1687:println 1627:println 1576:boolean 1573:private 1485:Adapter 1470:Adapter 1391:adapter 1316:adapter 1313:Adapter 1234:adapter 1231:Adapter 1064:adapter 989:adapter 986:Adapter 912:adapter 906:adapter 837:Adapter 834:extends 764:private 668:private 546:extends 378:adaptee 359:adaptee 343:adaptee 335:adapter 323:adaptee 244:Intent 241:Pattern 197:adapter 186:adapter 178:adapter 167:adaptee 163:adapter 96:wrapper 5052:People 4935:Broker 4638:Facade 4623:Bridge 4473:  4410:  4361:  4351:  4166:public 4127:public 4091:public 4049:public 4004:sealed 4001:public 3911:public 3857:public 3827:sealed 3824:public 3734:public 3680:public 3650:sealed 3647:public 3614:public 3581:public 3464:IPhone 3356:IPhone 3230:mobile 3212:format 3173:mobile 3149:mobile 3143:mobile 3131:mobile 3089:format 3002:format 2894:format 2807:format 2714:IPhone 2537:" 2471:import 2450:Python 2428:iPhone 2389:System 2383:iPhone 2353:System 2317:System 2311:Iphone 2302:iPhone 2299:Iphone 2269:String 2257:static 2254:public 2203:static 2152:static 2140:public 2107:public 2065:System 2050:public 2005:public 1939:System 1906:System 1882:System 1852:public 1822:System 1795:public 1732:System 1699:System 1675:System 1645:public 1615:System 1588:public 1561:Iphone 1451:ClassA 1445:ClassC 1439:ClassB 1409:classC 1403:classA 1343:ClassA 1297:ClassA 1261:ClassA 1209:classA 1170:ClassA 1128:classB 1115:string 1103:classB 1085:string 1082:String 1076:classA 1016:ClassA 979:ClassB 973:ClassA 937:ClassA 882:ClassA 870:return 858:Object 846:Object 843:public 825:public 797:return 779:String 770:format 767:String 749:classA 743:format 740:return 728:String 725:public 710:classA 698:ClassA 686:public 674:classA 671:ClassA 650:public 638:String 635:public 623:public 616:ClassA 576:format 573:return 561:String 558:public 549:ClassA 537:public 518:classA 506:classB 498:String 492:classB 486:classA 468:LePUS3 417:LePUS3 395:object 374:target 355:target 339:target 331:client 327:target 319:target 315:client 313:, the 278:Facade 233:facade 201:target 193:target 171:target 121:of an 86:, the 5027:Books 4944:Other 4880:-tier 4701:State 4648:Proxy 4404:139ff 4007:class 3830:class 3653:class 3554:print 3548:print 3530:print 3524:print 3506:print 3494:phone 3476:phone 3458:phone 3428:class 3386:phone 3350:phone 3320:class 3308:phone 3290:phone 3272:phone 3242:class 3200:print 3101:class 3077:print 3065:state 3059:print 3047:state 2990:print 2957:False 2906:class 2882:print 2870:state 2864:print 2852:state 2795:print 2762:False 2711:class 2696:raise 2663:class 2648:raise 2615:class 2600:raise 2561:class 2239:phone 2227:phone 2218:phone 2188:phone 2176:phone 2167:phone 2143:class 1993:final 1975:class 1765:class 1558:class 1448:into 1397:adapt 1361:class 1349:class 1303:Class 1279:class 1267:class 1203:adapt 1188:class 1176:class 1070:adapt 1034:class 1022:class 955:class 943:class 855:final 849:adapt 828:class 776:final 695:final 653:class 540:class 219:Usage 108:class 90:is a 5003:Twin 4860:MVVM 4775:Lock 4770:Join 4471:ISBN 4408:ISBN 4359:OCLC 4349:ISBN 4301:Shim 4172:Main 4169:void 4142:this 4130:void 4106:this 4094:void 4070:this 4040:bool 3968:else 3932:this 3914:void 3884:true 3872:this 3860:void 3848:bool 3791:else 3755:this 3737:void 3707:true 3695:this 3683:void 3671:bool 3635:void 3626:void 3602:void 3593:void 3488:self 3470:self 3452:self 3446:self 3410:self 3392:self 3380:self 3362:self 3344:self 3338:self 3302:self 3284:self 3266:self 3260:self 3224:self 3194:self 3167:self 3161:self 3137:self 3125:self 3071:else 3032:self 3023:self 2987:True 2975:self 2969:self 2945:self 2939:self 2876:else 2837:self 2828:self 2792:True 2780:self 2774:self 2750:self 2744:self 2690:self 2642:self 2594:self 2465:from 2272:args 2263:main 2260:void 2206:void 2155:void 2110:void 2053:void 2026:this 1933:else 1855:void 1816:true 1798:void 1726:else 1648:void 1609:true 1591:void 1546:void 1537:void 1516:void 1507:void 1492:Java 1442:and 1430:()); 1221:()); 806:trim 758:()); 680:null 585:()); 527:()); 441:Java 368:The 349:The 4872:ECS 4867:ADR 4855:MVP 4850:MVC 4244:(); 4232:(); 4208:new 4196:(); 4190:new 4157:(); 4121:(); 3641:(); 3632:(); 3608:(); 3599:(); 3437:def 3329:def 3251:def 3185:def 3152:def 3116:def 3044:for 3014:def 2960:def 2930:def 2849:for 2819:def 2765:def 2735:def 2681:def 2633:def 2585:def 2468:abc 2431:)); 2419:new 2395:out 2359:out 2323:out 2314:(); 2308:new 2296:(); 2290:new 2248:(); 2236:(); 2197:(); 2185:(); 2131:(); 2098:(); 2071:out 1945:out 1912:out 1888:out 1828:out 1738:out 1705:out 1681:out 1621:out 1552:(); 1543:(); 1522:(); 1513:(); 1100:(); 976:to 928:(). 873:new 809:(); 644:(); 456:UML 406:UML 308:UML 123:XML 82:In 49:or 5173:: 4499:. 4430:. 4406:. 4398:. 4357:. 4343:. 4325:^ 4220:); 4175:() 4136:() 4100:() 3989:); 3962:); 3926:if 3920:() 3905:); 3866:() 3812:); 3785:); 3749:if 3743:() 3728:); 3689:() 3575:C# 3569:() 3551:() 3545:() 3527:() 3521:() 3503:() 3485:() 3467:() 3449:): 3425:() 3407:() 3359:() 3341:): 3317:() 3299:() 3281:() 3263:): 3239:() 3221:)) 3197:): 3182:() 3164:): 3134:): 3113:): 3098:)) 3050:in 3029:if 3026:): 3011:)) 2972:): 2942:): 2918:): 2903:)) 2855:in 2834:if 2831:): 2816:)) 2777:): 2747:): 2723:): 2693:): 2675:): 2645:): 2627:): 2597:): 2579:): 2555:{} 2540:{} 2410:); 2386:); 2374:); 2350:); 2338:); 2116:() 2086:); 2059:() 1960:); 1927:); 1903:); 1867:if 1861:() 1843:); 1804:() 1753:); 1720:); 1696:); 1660:if 1654:() 1636:); 1597:() 1482:To 1467:To 1406:); 1370:); 1331:() 1309:: 1288:); 1249:() 1212:)) 1158:() 1140:(( 1118:); 1079:); 1043:); 1004:() 964:); 891:); 879:(( 734:() 600:. 567:() 397:. 384:). 365:). 345:: 114:. 4878:n 4545:e 4538:t 4531:v 4514:. 4485:. 4445:. 4416:. 4379:. 4247:} 4238:. 4226:. 4214:( 4205:= 4187:= 4178:{ 4163:} 4160:} 4151:. 4145:. 4139:{ 4124:} 4115:. 4109:. 4103:{ 4088:} 4085:; 4079:= 4073:. 4067:{ 4064:) 4055:( 4046:; 4034:; 4019:{ 4013:: 3998:} 3995:} 3992:} 3983:( 3977:. 3971:{ 3965:} 3956:( 3950:. 3944:{ 3941:) 3935:. 3929:( 3923:{ 3908:} 3899:( 3893:. 3887:; 3881:= 3875:. 3869:{ 3854:; 3842:{ 3836:: 3821:} 3818:} 3815:} 3806:( 3800:. 3794:{ 3788:} 3779:( 3773:. 3767:{ 3764:) 3758:. 3752:( 3746:{ 3731:} 3722:( 3716:. 3710:; 3704:= 3698:. 3692:{ 3677:; 3665:{ 3659:: 3644:} 3623:{ 3611:} 3590:{ 3563:) 3557:( 3539:) 3533:( 3515:) 3509:( 3497:. 3491:. 3479:. 3473:. 3461:= 3455:. 3443:( 3434:: 3419:. 3413:. 3401:. 3395:. 3389:) 3383:. 3377:( 3371:= 3365:. 3353:= 3347:. 3335:( 3326:: 3311:. 3305:. 3293:. 3287:. 3275:= 3269:. 3257:( 3248:: 3233:. 3227:. 3215:( 3209:. 3203:( 3191:( 3176:. 3170:. 3158:( 3146:= 3140:. 3128:, 3122:( 3107:( 3092:( 3086:. 3080:( 3074:: 3068:) 3062:( 3056:: 3041:: 3035:. 3020:( 3005:( 2999:. 2993:( 2984:= 2978:. 2966:( 2954:= 2948:. 2936:( 2924:= 2912:( 2897:( 2891:. 2885:( 2879:: 2873:) 2867:( 2861:: 2846:: 2840:. 2825:( 2810:( 2804:. 2798:( 2789:= 2783:. 2771:( 2759:= 2753:. 2741:( 2729:= 2717:( 2708:) 2702:( 2687:( 2669:( 2660:) 2654:( 2639:( 2621:( 2612:) 2606:( 2591:( 2573:= 2567:( 2549:= 2534:= 2528:} 2522:: 2516:, 2510:: 2504:{ 2501:= 2495:= 2486:= 2477:, 2437:} 2434:} 2425:( 2416:( 2404:( 2398:. 2392:. 2380:( 2368:( 2362:. 2356:. 2344:( 2332:( 2326:. 2320:. 2305:= 2287:= 2278:{ 2275:) 2266:( 2251:} 2242:. 2230:. 2224:{ 2221:) 2212:( 2200:} 2191:. 2179:. 2173:{ 2170:) 2161:( 2149:{ 2137:} 2134:} 2125:. 2119:{ 2101:} 2092:. 2080:( 2074:. 2068:. 2062:{ 2044:} 2041:; 2035:= 2029:. 2023:{ 2020:) 2011:( 2002:; 1987:{ 1969:} 1966:} 1963:} 1954:( 1948:. 1942:. 1936:{ 1930:} 1921:( 1915:. 1909:. 1897:( 1891:. 1885:. 1879:{ 1876:) 1870:( 1864:{ 1846:} 1837:( 1831:. 1825:. 1819:; 1813:= 1807:{ 1789:; 1777:{ 1762:} 1759:} 1756:} 1747:( 1741:. 1735:. 1729:{ 1723:} 1714:( 1708:. 1702:. 1690:( 1684:. 1678:. 1672:{ 1669:) 1663:( 1657:{ 1639:} 1630:( 1624:. 1618:. 1612:; 1606:= 1600:{ 1582:; 1570:{ 1555:} 1534:{ 1525:} 1504:{ 1424:. 1418:( 1412:. 1400:( 1394:. 1388:) 1382:( 1379:= 1364:, 1358:. 1352:, 1346:. 1340:( 1334:. 1325:. 1319:= 1306:C 1282:, 1276:. 1270:, 1264:. 1258:( 1252:. 1243:. 1237:= 1215:. 1206:( 1200:. 1197:) 1191:, 1185:. 1179:, 1173:. 1167:( 1161:. 1152:. 1146:) 1137:( 1131:. 1112:( 1106:. 1094:. 1088:= 1073:( 1067:. 1061:) 1055:( 1052:= 1037:, 1031:. 1025:, 1019:. 1013:( 1007:. 998:. 992:= 958:, 952:. 946:, 940:. 934:( 922:. 897:} 894:} 885:) 867:{ 864:) 852:( 840:{ 815:} 812:} 803:. 788:{ 785:) 773:( 761:} 752:. 746:( 737:{ 722:} 719:; 716:a 713:= 707:{ 704:) 701:a 692:( 683:; 677:= 665:{ 647:} 632:{ 591:} 588:} 579:( 570:{ 552:{ 521:. 515:( 509:. 458:. 73:) 69:( 65:. 55:. 20:)

Index

Wrapper pattern
excessive
irrelevant
improve the article
less pertinent examples
software engineering
software design pattern
wrapper
decorator pattern
interface
class
source code
Document Object Model
XML
Gang of Four
polymorphic
decorator
facade
Decorator
Delegation
Facade

UML
class diagram
object

UML

LePUS3
polymorphic interfaces

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑