From b8365e9e4cf09f55a09c71ee5dab59e725799c7d Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Sun, 7 Sep 2014 15:08:43 +0300 Subject: [PATCH] Improved the adapter pattern example. Updated the class diagram. --- adapter/etc/adapter.jpg | Bin 28164 -> 33779 bytes adapter/src/main/java/com/iluwatar/App.java | 7 +++--- .../src/main/java/com/iluwatar/Engineer.java | 3 +-- .../main/java/com/iluwatar/GnomeEngineer.java | 6 ++--- .../com/iluwatar/GnomeEngineeringManager.java | 21 ++++++++++++++++++ .../main/java/com/iluwatar/GoblinGlider.java | 9 ++++---- 6 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java diff --git a/adapter/etc/adapter.jpg b/adapter/etc/adapter.jpg index 1843c638a80087f05c205a736a397d16adef4fc5..2e182515ac64638d4cd8c5421a9166e334a05628 100644 GIT binary patch literal 33779 zcmdSB2|Uzq_cuP0Y}t20WvgsutqhZdBn>HRNOlvGWXmu`_AP`EW6e(X-DD?a4H@g0 zBFkjPG6rKjpYH$f|9kFl_wzj8`}zI1*Z*TK<~8$K&N(ENV=$3aU+ z`};U?{5UNg{Rw*d--CgXnUR5kiGiM;iG_)Y`6O`AGqSR=oMip|{`XCOU;g_l;B}IL zp5gZy|9i*LM-T@CO(xAgEzMcbF%BA94w|DbkSIVs9UzzAqWO=5<{0g9x)T6NOw7Ou zwd?@-w6w*(IpyJdXuzKN-sxrLp*gQJtPi>v1|FK-`T zzvscPLPEpBBO((L-y|icyiHBZ$<51uUr<<7Tvc6DTUX!E*woS4)!ozE*Z*mB?Cbc% zPjMKnyKVNzBrdXuRK$e6wuPQGlbSO2#&P zBWSM|VR#~+Cn%GtR{CJ=i>nJHVz9_V1h-Zzd@lfWEQQKmBD%LxdIVZn+&BWo4xhmD zgdBkw?#EGfCy)dWpCeGO^AYIPg!rx$w(28La1@%Vc1@_p zgpYE@1hO@6egtaoo<9N!=l=hIp21#bvSpXxvx_rxP^Y4sBs@%|VGms&DKSV@B$~O^s00%L}kWl`<=}x5|a-sE#yT#m?^`+01Is3*}m{qEynx1MA8=Bw}7E0MuwWUYlG5Ibg0 zv(VSL(`R^O(-#PE=^xUaaDe zpkvjxC9^H+1ksOy9DI-|4Msw23TeQnrr|&`4$g*R&KMHHYc}#nCxN*pLdYBoN(5tH z7X%lUhp=Wq3eIN{nP1m|ZtSV4xbOBj(FnL`aScz=jMjk3O5KxgTT8%jO#6%JJkrqDloXq;ulpMfD2- zY}#WKMQ75!TTCYEc%ph|uNzZGoLHsPQ*My?+hnOC@x(8n#{oHUHTNMkMx;nkBPmj2 zG?u^bXS}35vXDpFgeS})t~>5EC8jV5xOG0 zqC1BUN1%KolO4|^5LYZ%9JxjsIs)Cw$zq}ghy>i-`nmP<*ak`$b+2U~ybo$#o=l|9 zaXFDB$@NE|N1;Uk%?YOYdpn6ZH2n&a3(QmE>+_)Yz&oydYQQ!CzSI(k;LO%F=+lzB z7oT)GnxO4+>z3l(0D%m%M$K-o+k2K&Mk0Yl;}qf|0Um|KUZ)%*Aco00Lg5G_?7=+5 zy3xBXk3aMvsuIFHp6) z?6BJ;1tc$#ZmNV}HK8e>a)#rQ=?8)obpk33ao#E0_vzpSG;H6El!1-+@$~Y67xa3E zIGT&OR9}U7oRJb>8hAH}sJtg}{>u9eDzrJk?GV1y%NYJjj9;mY>am`3W1@9(pdGAw z@ECEI$QD6i#vXwLrYM)&hNBF4__R9Xt|F})xZ2N`$aV&;WbrvAvx>*HLgdF1b(hXsbg?WXWnbv_6fa$U z(v1>=S{+ zZM)h?b0hFX=SimBAqHyC5r_rMpd`PJVmVBqa#S#*gO%pVZ>{u5ZW5o8>-O^1s_r9w zrxN2@ExuNShBYM}fuz@#-3vd(it<37-mVvrDZI2jRPfj{bFk1tqg<^7 z8JS1MY~89OBv&trw zKJ%|-U``C!XP-Neabm~H_&)4gZstRI*?X9kjpI)P2HtpziLuSb!lsnj$Wj&Uv(S$H z6H!vHtkvZ^pWm>ctF002rZ9RI-0&36nCowEeF@dD8cJ&v$B9o2#iH$OLXn&Z5591( zxRa&(K>_K5vC;=6Flj*Y7h&*P3+=Phvwq^Vq9~#DkJFJuYy4^}^zf7vR7F}_^w=tS z4W=BRMhdjTf5#WkETJ9QFp9ls5r}g|RMY(}UnrCS@3i4Wu}!!0ratjfJDf0?WZF=B zu;=l{#f<%oTDzeNj|BDA)>;JFpWxXEVQSG@EHl*{3v5T?+@J?`7Abgz0n&7Z*B%kbnbBR=v zN6hP(pQW4xFxu z`mZ$AmRGxvna@nmUatacV_#nl)44DZKWoOW`-q{0hd4yxDsyv3Izl7$31^{UgcYep zIl!SXlqUBTbiN<@T(@+_WpmHknviKakkMLg9e0>|0IjFLM;6Z=cdO;p2KgWI^io`F ziL>(|Ws_L^WT=~Rw)cCdNxL+CPk7}n9S351ch7f-p9TMb{?#@VBMiR(zP}uXV#*tt z_$7wqNlIGCz<0)7)G=GQa(f|DG4?ABe%lm9@f_2TbhVkX!_F09g_Y#f4|BYlUEa&@ zf-9s4R^sN|hl+8n4-v8iAa)fJ6*e2dv9Tl6+X$tUZqy^CgSBg>jT!Sour zG2i$7B2?5jxV@<^cB1q{ciy*w;{zJonC`bY_u+-uM(LGnA}DR&BT%;}BjWK_idO*S z6~bzvOtG`d4{2YA9{rxSD5I0Td-?K}C*PkRqk9ISRbq<}Fq`NRETdZe~5GLk||{B_WM^-UV2i;d3g=jQA!(#0>?HPxClPwjLb zW8ccrsP{>>(k|46;0$Ox>eeYahDY2VOr|(H8CZ9aDJn{m6O*n*S zL6lGothb>@ptQ1u9g>IuzbJX8#+-c z{vG>^-lU-~H2_(*+P?IZ3-TB)Y7~7agzzTr2ozZXB|<`5?1~Vl;%<+D4V>PSKU++T ztr--^3@d#y9(-+?7=4)&)VSvpcMG(Bu7XCC4j_RZqT18SLT{7OPB=w%v(6w^bhKS0 z`h=9>DLjkKNcz?IS($`6gZGkIRUI7dadxk1WQ^*)gl=y9W@AxW5gvV!T%r~B`QT16_&n^9yQk2F zz=QWXRZ9mZt=qnU&3lFXV-U1~C4fUka$BP@UJSA()b?A83^oo0So;zoHoV^bl zEJ8yQR&Ge6&HeY|!BF?M3z+^%v8v(&%nNX*2o&>(dgjxi?%5{SWew?fz89eT2Q@(W z^0tt62wk~>Tn3Ua=}9ETK=j)#dJD(|lh)8w$p#c=m-I57h$uIesv$GaO=Ll-uG)2;EuELVttl}M|f z{8>_JBP8^**17DG$cn9ASybv#?cGe7Hq)?*$NwSNjs9AB8JRr zcR@T0xc+GrcCeuWp0yA=FF74jIoM5i}&Ka6c(Hf@Kn%OOn5VV=I8R1W8|b#$$a{9+BP zC)5d+?ON6_#(D0#BMGc6(RA+@*l2!ujXDt>3`Ud6T z2=wDQph^+B2O_)FfFsamD*z{SO@4t9X}jiYQ}8+@4Hj}c4tb1xR`l44wRlyO=4g$h z|BCys3OhRpDH-K?0ef2e+k1sP6~C2XUs2NMuPusL zl;6Cp2d}SRPwi=*ur|0(7u;`oC5`#pDR-G_%RW&2&ECO$^U#|(++pK(#?=i&OE>yO z-SAqxmSJ^GC85Uq`7@s)@g{qp_1DR1;!Lj-HiaTK#b?6r7~Q0={p(cxMP>c!W6+OF zL{A#zVOBDk$S)VmEDcA+CO4E?RiQ!5c-HoQBjp*N#E1`xb2YXbRh1`@fMae&; zdgCHHZxI4pCfY>m32y|yr@i7GX`az5Oy%t>OuBR2U3>G!jzbnTwcAoC9;}@>?z)!O%o}4iDAJuoZjfKqIUj^hAJ=d9)apl z1bg86w&%&ZU>nge`w1jg$cDGJwVotTDoFjF4vzRTxS@8*uTA&0z0i%ukLA*qhix*Y z8cemlq1)*2Ooeg2PSdOSS&Fxy{{v^2N(7lfuF!nr6e{jdYJn)Mup#c=|oa(j4gN0Q4M8aF#79b%_J^2t!t*oU%ZEI8d zqk?pqG|%R`aT*=-h>sxFkEYFr$4$I1t`L>H3EjsZZ=5$9J}0+sHBH;B$Sc(-zN0Mr zZ+Pba@ZR*{fy0?HUbtuQyYa=PKX5Z-Ew960+(nL5%X=I*ix3YC+a*|bX z@>A0WSisBpJbF~#&}i3 zn%Z_(vNz%D{$WGGjdeeFOiOd9YuZ)a9R+{5mh4R$@Nhd@ zkT&8Mxv8>rCiNv8fBry*ylX|aU1WhhAo}|@_e^%`4sZ7()Ub79xY6}7)4B#f>fqQ+ zO?6O?p17RYF^+JYQ1y;ehz8G`FIy+?bIC9)&&V??2y*JNOkh78=GHpU);D^sq;cx) z!pQ`^?-OB^vu&r3Kv_H+)Z>;&B4*R}b4uHYe8;!M1+>wmxv#<={~`YfrNDlRAQa{*Z?}N`TKZRrL;k zb*N61Ysd_l@8ARw93Sruwy#WYw*Y4fOuFw(r^_>vukm`%?Xs87b5yW<=k_&7d=x3@X7f<&E=9nyOvIwA?_z_n<`5YT@Y6wl0O*=gmaAZFk?eA8 z%NhEJnzFk~hrzRY%E5XJ#*N0GF5QX|%(D8N|8oCNBA(3AlgDx?dgLiwMc7p#10)U_ zTJ(@AF*=@Wu9V*vQcxqa-Y)bxMxQ16TkmDCA$^AYx>$}b0n*;aSl9Mp#0?=I=w2Ym z8tjs1ZasZ#ebPkQ#l7T|%9ixw)9#NiB)jnQ$`OawktH@1=s3ayixe>bsUe;IAkJ*e zp>;&au&Typy=!bK$k}9(H`R*IS6W=#Onwd&x;sSHMra;^u1U{R80vn*{(p)yi!B-A zj3P^xrypD=Cw8`pPb`r=7mq-^E=}UkS#y!NjWBO($)HUM@5G_{`mNKJ`Y}UNpF?ub zyl|d(jsHew!$usYwq4Zou(J&az_x0&dp~!?tKHJ(ofI^EXLOvmveaX5aC{3%P2pYD1-VYy3`MMJ>F!!^+y(_gGktu6kh+^pxpva^GmP2!4BSr5NO zOxo;!M0>)JL6v$gaHtN+MV0l1bSt`=nnYnE%zu^IT^nAzkf-Nf_3pc$V)5sY$=oFX{^BLVteqrgB7IQHg(ja@fnt`j+nEJvLP3Ca>U9q8+T5x&=!CJY@ zvr*JY6?MpmnC^mr+<{HX5lFJ<<}SW}I-{}Yj$(8gX>|d?xZrlvH+0_ct1PusIF=MC z8E>uYeK%E2&oJA(IYAE}>%R&*mlOGK4+0ye_M(ane-IfaAV5ADBGpVfejw7LJQgJwarcDJ9nwjjMLay}JF z>kgY=izBBm+MFQ!cV%+Lb#u6E6uSz(tsNFz{5aE>5(3??XP7f~qhFTLx%|cZzx-T~ z=?jE{hAD;Hbn*Gt!3N6;v~PPx8hG}YhVshuie47ukC&!bnM+-+KCq~%R*;&?JTLkv z#BI9Xsqg}QV-{;iH2T$mNG8pfY~X^emS`+WL;mUCO5!45IHPM`>eC{CEcdzkCK2RlA)ul+)LAE+AfC{lTkW>qm zL9fPLeW7p!!m9r+I15fvnSK|XXGIB_-vDfY1$G3Y1B%V=wcypoz^j477HsPW*mQL* z3+ixF!+1r`=ysVZv|g1D)A~Ji6Tc95n)kAJ@`cD^^VEBs7cM>Zj{W}WmUNn>Fy9}~ z&82cpi|%2|kPA6LP8&0Mh7d-2(FB;55MI=T>`!F=XptYy?Db=fWHM?wqx1P5|F89e z#u}&No_z1bK|zMBuwlxo1RtLxM_NMDzePTHH6a@PS7BIdG?`?f>IZzs4&(ueyt1Ou z9!A3<)dfeOxb{N7Ig>A$PW$L|@7dPsOzBzh>K=7~w3ptE;%f22A{h`Ocez51lE6b0cqGl4$5g>k|8`ILfzEyW^>i}k8D0JtnR4fz{s z*T_}~`a6Gj{vMK{#Xl1?l5kZxFFN)er}`@NYPHhevs;CL5bda(Y?0KngbIpS+XY~5 zUwLCDmJc5N>KqvLf`G4V;+YD=3b z)pa-Qoxex#bc%rn$S+N$Pu!O3f=Sw>;04`2CW`h}nW;FfENMXIlw1F$8$cip6)mGw zGUg_psQ)C3H*yZ6A9n4zJ4Xr6P@AG5vcn(fumCGpP`H0%I!$5iCv)$#BvLI5imdtE z@pX$g9vt!jJsf2f|BgAd)OXv|l_jObAT+bd#vjq_8sd6b#*q4OxfWIUBe(4c5+gWN z)znaF>$roRaMkC5hGVqswX2zI#AhNZgmP4=rRAzg@_tg&gI?Bb2icgfnlH{c1UZPULWO|8sIXVM%%|AH&Q^{QY#+T=7+3-@i z)P5k`u7wN3(gLfCSDMt?g)lC9%(H`I&{GVBk_nfol&Flstdm>!`5X0g)T*4685;HN zz5a%d2dEDD80*vIq~Zsbt4AQFmVgBzUt7*zp9-s=iCRzfXdf{PUtj5bxV)_WfVFY4 zm3A=4$io}Cym#C_uN*BM==e9PGLDR}1|NY!+z1C2M0(Pl#tNV$J2l{Un4W8KSYp`r zEx)DkY~Pl|V_Q=(@t0}M*fa`!-(ggVT26CRp^KiYJ6t1pDh-Rqw|yL__o z^6AJcR^_KYQ3_%LC(}%_iCR>iFcNQ4nGLc-jYxZIVuy{K0_B@pU)VxS1wIq1`(=~# zv=>Zk4YVQrMf=x`2XhCD&JFxw1ke7|x_)v$V3^z+FY_iLSYe`RWJ`0pKO88}vzY}n z?X|2V$Y0cMd>VoFuM50q0><%-`;9*+pOi|q?)e+(09I*pg`x&{`CNo5Iff{WgNEb= zccocp6C}^OgEi%{-A+ES(&m40|V(CuyV_8xZkPQH|+xYPgR{0 z3KLZcxK{CCtJu}}jW|}qG3-vBtM(n%mGyr|U%&c|OQa(I4fO~8>)l#&VWc$5or$WA z&A};-_}m1=$&=Bv@{4o^%O>Er(C~@dXnBm%^h-%doc)K#Lt~#2$QEbX=l>KmowNxD zKvt;o#sU2U5{|@$%og|LQjd|=9Wa*7gmm^>)GR)k7!6p@}0*=pyk*yV5XZ<|5(pe zkXyYbz4JXfgf{Jm#CKBG&1eqJ-aFZPLoruQPFI4I`C`R=&bKnZgHdorBLry8!o zy=udv94}lE3Fcyrig7g5ZhemuGMjegIv4kxO3+Kt9qc{P5O$bM74v19+Z@2^hU{!G zu4PIdqTKLsIXphUlJEKY-HvR@hKJlX;kOIR#2C3b5{^X&M*JQ3-nth(Orr0jAy(y2 z^kt0^V~Oz1?YZ8iFg!DX?LJYry&}>G!3W?6HjHGAEv&>uQpHa=*1uH&&Q1==fA#TE zO+2rDb6$)Srwj5$M|^Sb!6bJgmXD#>WBBkTzOD0h5|!HV<>Vh=+yB zU)shyS0g!3^`*YEf2w+ln*4Wkx||yIsM05H&;L3IPd2_|QBQWRp9WHQzr99c;sRSY zoS!;kkwmIyMT-;_YhhCej`c7CX}9ZYd32>V8)jnuE+455W5g9J&g?X0e~s1bLd>oT@xeZ@da2i2jXaXIStSNsW-W2O&9Pj|}UaP?+h+foPa z*9++l(Z8AZBEL89{47Q%#_r5n+obACN2VzF__P%tQh*dyY-^gdc$iij7a4fvuoP@$ zw;;+1v&hS&BkT;l+&B^CDbeX_sH+xQNv9f6ta5?1eW@H@AaI(9CftRG@dbZG)x57I zGPi3;5l_?>lZEs(=q3|&GZ*J|>tnw$f1?{MiXDX3!2OKoR5Hv!RRNeozzzMyF1)^@ zxFGhxhcuuJf;e33l%xmilT$@qh-)UDYY`5gh zbu*mH>h_=RTVf~2Qx_H5oCo69q&MnX=I)S|#zsU%0w-)h6c=0>9B2ChXsA(EgRr|G zSszs;4Cyzbwsuf0A~flybT z=2aI3PV+9Z{h@=Yn8H8uHCU`Zr`Ucxa?I^nzhnC$6I96jMq~+VVR0^q<-&ImWMfvI zBJ~%;E5)T6h?myXV}UiGk18>6A-LIX4cVK11WKTA?B!Qb2W>d%+gYRz6fmSMY!pI2 zz}T2DyWF9FU?nnni#p^S)Q$~7Cs6&_YC}@ie~n!Bc4B`65-I6GRXH{;{)9LR^L1wm z6Q!cTQg%2t&N&x}QZ?@^Eur?4s)5>>H_dVy->7ti_vJkn%|a61O#v~y zuq6<~`#>n}aewI0jq0m07PChn?s3w*VXU!%+I;=OSY3siipu(87_=sGZtfg5=r~93 zDOVml!;9QBA3-M{-fQy$TBrWz#?~&Y8T3Gu_}~cihm?S@KOM4%D?u)lF9Tu!FdgB5 zdS(SpVr@PGjnvhSms$rJCaO8*n$mWpoQ8>-9{jx?h%a_;7b`)Suceh|+X-!}px zfiEZuaU4xB1*ZKULH<84cwR`1XX|MF%F6UmV+!fEOrp=B_k0`18={;}vLa_=;S94{ zg!zs+Ny2<2*!)1fowdYYxQ2AsRpYcdcBWpHrQSRHd+Hm32e)W?e$a}EcFkAEML8bE z1uAJ}|J0D7c8`}KR8Lw93~TVZT65IF8su~Ro745L$jiw)Hg1yBoUt*dx?#SK)Y;65l8@ zg2DEAr^N$^&`epUpG=AHhlw}6%Ze&0ng>0?;ivrI;b@2Xa1r{bUJH1~5YyTme;d&h z2;yvyS6f&NIHv4xyBozXot7tsB{r&F+5$;uf+~jpoOp8$HIY-~jD=R?&bHH|aOD6t z%i4rb)KAMd8-3lg<8L)x+}vlsS-OIoQL-qRHw~Oi`8M(XK|zVPcU|P{pVp zh?i(MieCvDiev#AlHYCsAfaw;m==2q?M=Kjn2 zI%l36jrOh?3)rsTJ4O6-FZZCQqI}vl?GQQ`hv8e0>XsLzjtd@Ai&z^)vP)FM>^*#|tgccTFMPXSIwbQcS9e(uiAv zwV`NR!sajPk`3D{A=!Crx9ifEWlmb=`a{m=o9?~3%PEMyj{IvxCi;g*tD=sg&;qsABEBJG&8iHOZG| zq3+XqyfJ+5B%U2kG3j&F$Bn@M#!S#vB~b?0%AVz54VUN@{B8Q`p9t14+ag zQC@fOWAOQMxq83i_s!s2`we4KUyZKkudN)k^-Nv>b@gyAyzp^K+xb)d0ldZaX?|bD z+UB%rPF*Nu>J|r;^Od(m=`>}k)8%~dDD2uw>W-%R$zM#$ zb$N~NdMj;H^rwopBrevkXA|OZPF>O{Zr`{L%+5q*p@o)hVQo!XYfM`;oS8RLXxdlc zOiPU3W&Kz2Iv&v;7I(jJCM=ogTd5mw*3D1eE^%P#-n@k`f&Cnxi#=G`+@shLJAou4 z2`3t(I17cB>NF(>W5X%*r9dH*4Gz{Xbap(KdjS2mkwBf8yyWkn{@l zn-(b$a3h|i;=`O4r$s13|A|IF9Eu#j_B{5@qhx>8(e=BgHSv>&#(mM{j~S9&@wCjkLZxKRC{Nhh-pA_9c zUy@GTh_xfIg|TK!%x^X$p13#G{)fN$4#e)t|gOhyD?g|*t-qD5Vi~R z{IEItv5F1%ZFRLS-chRv8SIuskakSQqU{@&HxjBvVy{^Ml7+I9sh zC?DhwzAqAtgW}%|%X$fMw|sq=*jd+v#K?Z$l4wX17`?{p^61mXnYN!u@n7md?|R*2 zke6u4)q)tX@uDabS*+6n84j=E_fj{t4iXYVSI>YieX8y=f;{JXVhDY3Y!+5M0kmz3 z9wR#$kF0yi3zDJG79xB2iplQP?v}f&f$kg9eI`#F<||3-gZQ%Og~<;5fiS|1(365i zay#$qMpFblvdM|vyK&fgnpyIrfV=!&mP9aDmsfb+*r1&WCurnmn+wxtRcU|GbmqE1f*BmcmzdoW8nA@UiPX4!2j(>AU&lp1qrtddcS&<%63D!xZD; z9a;Z{{gq5+B2Ra13)eT_kR4g1KG!?(`u(RE86%y%g15u7gLX4|LigW#K?K0GQh3pW z%jB?5Rl|8-$K~!crMghHiVJ$%{r1rzTi_xQm2=3rIfSM;mwiQCur%E{CxeF^`j`M*7b<2S1Sw5caXE+WNEVC&V%4I?l8!MH&$D z84W4D1utSsh-D9PTBs8{QZfxJP2tyuQb}%9_s^cq?$Te{1Ow;W*vZ)hL7?Lf6PS-} zY%$OCwW2@^eXq~kgyM|GaO^e3RmE`%%5DvuO4mH!i6njRU7(K>Bteb=>kEri3R_nJ zah@XerO-Se9v_=EnSMObXFBkkEyP~>dw5F=br;^}J5NsqvPVwkikF!u2scp7)9v*r z)@_!@Gpk|u#_WTw8{5Xp@yQeOeW`h~;?;T8N^9JP-f7WYzSXof6@xLrG7#X`(9y3_H^>HHVpCIAIMZ*-YfpBpjCQ%w^!L zZc$l;@E<;6mJ$OBzICfzJ7{V6Mb};E#l_85*{ML!3R3%mB-Ih?JJ6wXm%q075e9`t z%?RGH%7r>{6?#QKpSNhIA__OY*Ss8cklxajXgIA212I47cSBcr$Gs)&R^o9Gu{0iMrnzXii#JKe}qR`?*3enhX6d_HN1^^g2 zLfPEAOg>^*m+r)S^w%E^u{Y9$Z1Bvj8a?9L@uvN$ic1SQAw0t_sN-ONLdjx&K`i~t z3a|srb}^3Y%JBLQGs6Z;TY*GnuwfKlv6lw(p)WS>>`k#$Qs@;O5Gn3N;B+Q^Bl%JR zdAcVMD9v=vs+x>%DEaG7)UNsa$~gpW!tQYloR6{kzFB`9gi5FNR`8E8##IDuLj+d> z1>1;WA?p?>w4PYKUo}5k$LCfRSR0Qg$G8qZHr=$iaxLaW?+>my$Rl7EfGL@l z$O~&VHppZ`LyXtd1&GHvH3@EoeT&p+~a4x;j%>)QAlM@{cV>D8lCOh#(H++t>27%Q#Wv*+xr&=zZ_MlE^J zB%Zuxa+zn%;q7xCu`8x778A|2yRB#}TCxAjrOT0bgR*%y{HLs^fslUkyZ>Y-1S79c z&R=AxIS^8N+uhyT-DRp@=rTDm>c`?<)!R0@;wk7-3KMS_`${T-H0y)OHvX+eW*7^waZkLv!*o=%Bw!! z;^we$Xs1_~yhL&Kt~2V8jJ@}*6M7|n8C0|KGU(=_hBUPY!dZ(3b|`Vk0y{{gH<)}6 zx|2o3V+}YDI!u~)axBZT?zbe6dfcq9 zh9qK{iWM739nLtfvR=T)J6cz~5=j4T0#Z}a*$Q1$vSzCz?gsq=TU~jpo1}@-NChEkCP0zY8R!j>un@>o-=~Z(5 zB5r?H@wMrh`|12AT8<5oEQmZQ!P#aM2pnFF?(u7}0}m*p-`2?noVRS9-amYog<(BJ z%guZ@jVIIVjmuFq4%qJ^u{6}Vlzrsh<5W<*&yz=5ztY9rA(D#GvyCu$rli{wfjC+_;T4c^zTj2AGv zmJGCN(PPq(y+gFC^IRJUE*K8NH0wKN@WRUKCx0< z)ZuwTF;!T*nBx9bLjWQBHP2VTk{~WaX3)3G#^U~w{i&W7|gRl-X95uBs z8fjBg&>6=Go392CTP42WXR^$ul})38U$U$YgEsvhrwO!VJo+^!wyCAC5nU~}Zg--t zO$fmiW(HVqhQ1E@j8q2@-qP&M_y(>DbI!PMKG5XURx(_vH|1Tpd3%2K+lK*O=GQmr zn|)EF1hW4^9Lvw=gSEJ!6Dxv{i0`qog8RFcb@g@QnVN4b{e(L{e`dXQT@QcXl=PbL zPLV}74x=XCv;_+9Q}=Z}{yp)P`&73Rf#Vc1`-2db-e zEJb9++r)bbzOb(6&oV^}VERG08&xRt%pdR!IVo)wPAzdgMXk0QQ-XVU0`D(r&`|p` z&y#}*TG%gNGkNQphTWCeLdX1|9`s4|2CbQ^%iq0Cx{Ug{K=<7HnD~Q0^fT<#uk$B= z1#;=*ep1hpd7;NX-Wpg`p2Xit6kw?d_FD4OVrd`nS}gS~AjJdxB10zv6(?H!7G_1; z_g_R~*6J~{wQcE7#ShZuguC3D>-d*z5pf4MsC^Jl<+#YJN1&({Ik0iQRsrQkTsQ9r zUlTXx1Iv3aYZx92!W_nP()w;EhVeIWTr&JzUf}-g=`Km0T(p3v{TO&|#EUID-c?Zh z2ox@_%%Y~>N_ap$XZrO=NY}J`sojVn>H<{Z^0BJaZ>6I@Iza*5rHDWRB+Sc=5Be4C zg4Gw=;Pit`sZ0vCwivr+djFsKM%_BS_ZX0Gm@Z8My#tl?>$znJE^-DIuWvHC!&dDQ zcp_0xzx58aXLA#?=w<*s;r+2Q53^83Evul~rIDp^o8KKrvVJvw zwWdJPJd4@dO~mc~R^e9RvB`A96?pTaa2$|9qqp5^b(f8w@y!!ihk#7nW?u#KLhZso z_2OR&6gvX-gD27J!X8JUoV12{vcY!TK9dWY%!$HTrTirs7b;%!ZsJY#3<&UqJ2^RV zK|MUcL6@^)G#z~&UAqtB)LQ^K>($%y)s+qs9eQ5@iSIy}kd4hr7)G6NzwyJ@(Yeiu z1?keLw)3iDZqIZCPVvwemdevml*z_~5>w!xG*pC8g~&FBX0FsugWoy0}UGv*G!StdUJasPkEx43+ZWJqIzp-xW`j> zIbQaMv6n>$`AjSs4;<>#@iwd)l0R+uS{U=m>77^0GHbJ7-fLbC0j>v&4KdBZ-(ofC z>298Wp-GF-u`x+1ut>Ldd%p60cgzFp8FA~~2lDfwq}9c|b<)IS^-56`VG`ThF&}(2 zxy%o6fNZ|B9X@H4dFQXoBc*OK_FwJ4Z=~kjS5TEo?*Bdsw8}8H#UFt*4OD^9%b4Pd z1SanT2R%h{U-ytsX`aFeB?2{_05NJ%8k~B(fc%vTbfbVY|F{e&&%TQM^#!5Kq?W8njqC<3}CPvV2oNo_;=gjeg6g z(6H+bV;KLVr@R{(*VzBK4uVx3h5S4ZAXf{wkTG^-^rBT^a62gyW(0oTl)}tQMev( z56Eq|R-ZTj+}BHkL)JklT)PV!ctDu)WZghnGMg6BE6;fV<_Xr3KD?Y+2KN#$&sHDo z0pVWj^864bKsU%|3f6%>$m5tM!GafHHj(VbZf^&oYPh|XzR4@jK(jmtMi2;p`00%8 zZj=aYt?3-?fGpU!zy;Veq`1m!_&F_R>3f2g$%C0b9ZkrsO1{|bxAvx1mIf#D*aJu3 zagfK9_PqO%Kxs&5=JhL-Stfj$GK*NJHw4yHcj@CK z*9W;sr@7)5hYa=v)=xm!qn z{?hxYL8oM8w(~<*p8Azf0!u;OqrdeV|E;_40BWjh*F{lKs&u49=}Hr%C?F9L5D{t8 zn~F#YAtEi*2nr}I0tx~`KtQBR3rO!MNG}0G4Fb{=N(dyxyZ!F@&-uRp%>C~_r_8x? znPCPP_TFply|do;ectDJ7C7Bf7Z(zxAy)dF3iP(QI9www$r4Ev>sL259#f#dXe>Qr zmcu;bTxf0n(Q6HfJ<1LNTT**br?=FtKDqLZH3(Mq=DxA^eJ#_w_+wv%4XY)9a7p3~ zRk;0JPFV7+XpA|y6*iej<))8KY!ed3%f*K9ky4lX3~uxo5G05}#hhBB4X-Yk5SW>r6--eqFM z#rU$V(Ke{&n-Pm6F1f8Kd{!Xwt^+?D(X4UFP6$ys&g{`SY{YFsAb+i2gvK@>B-4l5 z*@j#moR2kAx+ZU?!^!xDhGlxSKOOLmI-_yU^%o5jg{uJm+&n&ecsI?r=G})aU)m3V zSe-+@HC!O!`qp(mFg|Ssw97e+z>9%9|FU#gYVeSXopBDlZbG0ynPj$wZ$yG&c@Wy&1i}xX-oi z+0;8jGmVmaeCnX$H4VU&{fA3#Gal2?0PX;@1D#JBIE=#x|K9hh-8W&$2u<%e!oeeX ziQ~%CuWPP!271r@6Cnxw8^id=%d_Dh;KpAjRst8Xtr!bAk3C9SomuM{F7fj>iNvNr z3GaneL*DYFn+FL13T{(mCB)5-lMN9jXUbMp26qFIk$_yItsApKf9 zaXk--QTLE(SEA_oEfKgzzt1D(wb}SD*dc)|1@dIow9Y6 z503Q_9cjI2{f)1Xab)MkGZ@ph*DC=PB{DCy%^J3z5B2}F8nCz=tM2^7e(c&)M^E>2 z!_zVqZZfGj%W@|)du29DN7;Zye!4SzhnZ1Zhfeanp@t(w_l)z`2T#{A%(1y1R;HMg z=|X63$mH$jd@RG*!QfL&OUo{=Tr6Bb9uAW%lMKs0(~pr$LB>hM-_Tw#bRak&%e7+em=Sp zSNA5uHeckTrr^uM0H^n=8fh?Rk4C$OA_$XS4SLjw=B)aA8dXe8aLU03ev9Zns&0ty zF&%n1m|=Kgbw&YSfez0Kk{oFSt;nD9VaAk~p!@?pJtL7WHHqC3JZAI?PUDw}*(Bqo zAeYqH79h+C5ALB(kWiY`u2J_O=6pAmo*XStr=@RsZf*k;E5sh&c)q^r#fN2Idygq7 zgKts*M307oA*GS!XGvBRrw3UiTD?IEpb+3vg2Fn`$p{8His45H(NFpQc;BJVo21f$ z_HxCPGxgMaF}b*}Vu7%59@Vb({sp-(sxZMfnZRm2;I6pEZ7n(pY7=yAD#z8=|U^rRFiwR5ofq0-x$)Z9uI; z%!AML2WG+%ck$Z&&+jMd*HlNHUN741sjEv%3q)Mzc)2LgCMw~6J57(Q-<#c=$r>3V zP3^PZf8mo-v{?@>CS|v+0I`e(@Ifha9hzo6Q%W3N94ln+j527GfAf|2^K6FlI9v5e zC4}o%_%$g@vOxghAh>tZc7X3i3v+YC%QFLl}_uRm>y+}ND2JA){Z*Xa)F z6OG}Abq z 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 literal 28164 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 Uojz0u>;4-qqW|bXLjE53U$1( diff --git a/adapter/src/main/java/com/iluwatar/App.java b/adapter/src/main/java/com/iluwatar/App.java index 0fe30f455..f1c87c6e5 100644 --- a/adapter/src/main/java/com/iluwatar/App.java +++ b/adapter/src/main/java/com/iluwatar/App.java @@ -3,14 +3,15 @@ package com.iluwatar; /** * * Adapter (GnomeEngineer) converts the interface of the - * target class (GoblinGlider) into suitable one. + * target class (GoblinGlider) into suitable one expected + * by the client (GnomeEngineeringManager). * */ public class App { public static void main( String[] args ) { - GnomeEngineer engineer = new GnomeEngineer(); - engineer.operateDevice(); + GnomeEngineeringManager manager = new GnomeEngineeringManager(); + manager.operateDevice(); } } diff --git a/adapter/src/main/java/com/iluwatar/Engineer.java b/adapter/src/main/java/com/iluwatar/Engineer.java index 4bce0e7d3..d8289df7d 100644 --- a/adapter/src/main/java/com/iluwatar/Engineer.java +++ b/adapter/src/main/java/com/iluwatar/Engineer.java @@ -2,8 +2,7 @@ package com.iluwatar; /** * - * The interface the client knows how - * to use. + * Engineers can operate devices. * */ public interface Engineer { diff --git a/adapter/src/main/java/com/iluwatar/GnomeEngineer.java b/adapter/src/main/java/com/iluwatar/GnomeEngineer.java index a35a85e41..92fc5aea8 100644 --- a/adapter/src/main/java/com/iluwatar/GnomeEngineer.java +++ b/adapter/src/main/java/com/iluwatar/GnomeEngineer.java @@ -2,9 +2,9 @@ package com.iluwatar; /** * - * Adapter class. Adapts the interface of the - * GoblinGlider into Engineer expected by the - * client. + * Adapter class. Adapts the interface of the device + * (GoblinGlider) into Engineer interface expected + * by the client (GnomeEngineeringManager). * */ public class GnomeEngineer implements Engineer { diff --git a/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java b/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java new file mode 100644 index 000000000..af3467d30 --- /dev/null +++ b/adapter/src/main/java/com/iluwatar/GnomeEngineeringManager.java @@ -0,0 +1,21 @@ +package com.iluwatar; + +/** + * + * GnomeEngineering manager uses Engineer to + * operate devices. + * + */ +public class GnomeEngineeringManager implements Engineer { + + private Engineer engineer; + + public GnomeEngineeringManager() { + engineer = new GnomeEngineer(); + } + + @Override + public void operateDevice() { + engineer.operateDevice(); + } +} diff --git a/adapter/src/main/java/com/iluwatar/GoblinGlider.java b/adapter/src/main/java/com/iluwatar/GoblinGlider.java index 5a34dd70b..a5bcd0722 100644 --- a/adapter/src/main/java/com/iluwatar/GoblinGlider.java +++ b/adapter/src/main/java/com/iluwatar/GoblinGlider.java @@ -2,21 +2,20 @@ package com.iluwatar; /** * - * Adaptee class. + * Device class (adaptee in the pattern). * */ public class GoblinGlider { public void attachGlider() { - System.out.println("glider attached"); + System.out.println("Glider attached."); } public void gainSpeed() { - System.out.println("gaining speed"); + System.out.println("Gaining speed."); } public void takeOff() { - System.out.println("lift-off!"); + System.out.println("Lift-off!"); } - }