Knowledge

Adapter pattern

Source đź“ť

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

Index

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
interface

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

↑