From 0a47cdaccd752f18ad9b4a01555e3031c4b001c1 Mon Sep 17 00:00:00 2001 From: John Webb Date: Tue, 29 Jul 2014 11:04:10 -0500 Subject: [PATCH] Added Facade UML --- Structural/Facade/README.md | 4 ++++ Structural/Facade/uml/uml.png | Bin 0 -> 11877 bytes Structural/Facade/uml/uml.svg | 1 + Structural/Facade/uml/uml.txt | 20 ++++++++++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 Structural/Facade/uml/uml.png create mode 100644 Structural/Facade/uml/uml.svg create mode 100644 Structural/Facade/uml/uml.txt diff --git a/Structural/Facade/README.md b/Structural/Facade/README.md index b7e9156..4a9019c 100644 --- a/Structural/Facade/README.md +++ b/Structural/Facade/README.md @@ -15,3 +15,7 @@ That's why a good facade has no `new` in it. If there are multiple creations for The best facade has no `new` and a constructor with interface-type-hinted parameters. If you need creation of new instances, use a Factory as argument. + +## UML Diagram + +![Alt Facade UML Diagram](uml/uml.png) \ No newline at end of file diff --git a/Structural/Facade/uml/uml.png b/Structural/Facade/uml/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..2e68ca6d0b9382d4959ebe388278e0b0f1415213 GIT binary patch literal 11877 zcmb_?by!s2*DsBLgtStMq?FQ1qjU^IcS(06LxYI4lEM%}NOubYA|*YvG=jj;0z(aT z&-lH+_r33PfA_u5bD#Uiz&SJLtiAT$Yp?ZL>$9RX)D?&c9}r?-U=S-QzS6|Nz&r=8 zZ|-0Le+{fcLVh1B`+Q!wx)|%JF+Utd_4jmv-9HOo7^{;0zFy3T(Yp6MXmnLiD`z>|1KJu-u zk|6aVi>|XH@yFhv1*^r_W-?!EUtJ^RTmK1IiL6+Y$iXmFWTL5?_>0=FXC-%rqlw;z zPM+q<=P-uXR{mj#c#I6kUh-6W?aX-i+6F$?V&+!VJqH4D^EOD-8nr11O!}YX-yVJH zd(~MH@r*{iD$OLB0v=A0@H&{2YlC~W6H-HFXuz-jAvj1@$eZ}~6|=2&>6JjU;nYRY zZQ{*giVz>-;a>hg8K~BvlS+bJ>t}9_CKuwJ#b9s`JzHgnE?r*nOqBl~txKe*T?Cl^ z>8*<}Zdn%Ru%|)xqqO*e*$}n!_{(FK5GNdv`p1Qbv6Jc#Duj!RSAUsmHBM=7xvcg| zlUvyhT>nX|E}nIM7gIfTOIESAl`Sov-vtM*Gd&UKYMS<;+ZP zR9lQm{VjR~gUhc8qoQJ-w&_Pu0pF4Avf~ai9GMTgD)_A!VGr-X zA|Kuf!+_lRx0l75+JBHu3Y_Ur@9KpRWlP{Aa+S%l0`9#Cw4klTkWwGU0lvV#u3(T% z&}25JrRP!js5)9}yvf{^mB|5f&^G1426;1kX8{XHOfftF5iAtMl~qJU%|g zga8UyRA2=rM^>q_si>=u{P^*3dUJgp6G9BtJ>kTEzB~F|?)7(lv{SIIEt-aNb91{P(L3uNe(LJ#|0!p+ z!_?}BEqAO?O*FwA7{?bkp5Qb=xS{3gRC;QkdKoh;!Rzc1JTf9ePEHQ2k&~5W@&Nu= zsWO@!P-0v9A|}-nL|mKjg*Nx?k!#?^tI6v7wvnSaJD4c)5XLk|Do`&Lf@_g-kYYV* z#j-roEbcUcSUef>+w9milX;pQ(O#f9rZI<7dixZJr9?$wsG)hzi> zElpe)6`Bmcb#E(~YRm8Z8HynxonTeInpA^<8W^sL5^0QGY}Jy!kb|aqytgd{*S%}* zxGDJcQ+cS1;Er2sz{OJ%W@$4oMq34i>?R}saVLn?u*|Nrh3aL04#?0?>0NQF_o zou&C7$=QVk*xin+5050m!)I0>>UzV2X*?bl?!Dy*oKF%Kvu4~}BVCpX6hA|b;k!fm zvNLPg=O#lXKU=$ra*5n0f>ph;y|L}tVlBftXKSwG2x{+>b=f$Kr6qv3maC^X6zjv8 z#5Qyo%@|=-+pyamIr;JP&)@^29FG{juvVUXGcW%?Mx5TGq88~CH32E{ASTNAhsVb z01u|Bo$VS_*wu*nT4Ce+xX#rdmK*4{LA-xUgO2e@_s5#uu^o3vgD&@o=neMpCBTj>W7b(xpJ?Jm|AFFKa6opj$Z$zi4nI#H z4hVkuc#Y%YaE(ZC6EQaId(bNdNnZH+rPA1R^7t5aa+S?zmZ1W#a;_}14KG5tB}Wu)-R4+km4D9BhjnLW%?kVy&> zAFtSpXR^fWhQzG7$y{fq*9&PcP4~&CU8a5snZO-i(yw|059ZXuMHUu9u<^Ve4_e(^ zCCJAjD9BdiDP}4e@_E?URW|>)#k9R~|Ln3jcXq%|*y3_@JV7T|?0anUdvCsIVKGbU z<_%VSd20C0(yzcV=L+1KfM>8Dk90}Z!|m-yi&T2cX5=U8f+8*ECv z@`dS3ODbk<13#Nw1Fuou222ta<2Ct@OcH~y+|zF^cdBUIts3ql)3O%S=XSY;5TKEt z$2~*V10wD#A(2r^{x68qc(Y{GOgb1x5ThtE9l@-8W%B5{TIM?orA?>5l^l}T;t+Gv zGsMQie#rD1H6!8tiB_3>yfU9EA{El*H|BNrG()aNfTcKk|UV5}5E>Gjjg~KJ= zV=9K$0!n0myU#+fIa~iSDQG-5vP2a>UL571{Vc~~+w%;>97i48&p-vV6uY~Eufr2R#x1L3!YXl&g9#-GNWYmQG4@gZU?R1 z!&u03Ywk^4I_kDF)8{w*r)g%IKVO-e4s^JPlaAh7P2rQb@DB=Vv8qE#e+z@?LuHu2 zZMXAgaw&w!q6A5f(_ziq8xw+jFUjX(Ad6}n15EDYG)9(_llgL^O)G1m0_(v-soQ{T zn-QqU)QF4V*mBovMx%DuW#0DoN+&r(kMloE>gvjr!*F|AuZvh$V<@o!yQI^Cf2^;OKREdB^=*${RpeW2<x@5o>DfPl74tfpZ8gR18@8wl8>(vHi0` z0*T^4m(S z=>t=cXjj`@q7yYNlIWQYcR8mY(tTs18^(8&Rue4N4h?i!y|?aaxiei+Q8xdfSk2BR zaAyJf)3rV7nV?fy)pDWzMDHulUJU_(K#8{LZWkIF{6naIBXc_Qq4PX-oz@U`> z$ms3eLm2%%50FoTUAa4mxiG3IYOTi(NZXXQsDmR=Dtsz*UE{vhg#o8@ z&PulQPWz=_CKTE|O8Pq8f)(XVSup});{x}7$}4Zk33{RMDA)q7zDpVTAUlb-`h}Zt?Hxf9WRveXoZ8|aTn;|FSIAMBAd>aQVuzD8 z8FZMMwJ(}(>8D{zAw$~bhO58W7u&|f=rPxQkI3;l<#*j$kO1;RTQfe!by9utOJ(TDg!~J53$d9zp z*SbVlgfPAXK6rq>zz4W-mrJ8Ud}Ptf6&6|chF{k&Cgn()WzBgv!G465Q%jfp-@{{h+00 zsFX)ST*PM==CY{T7e`lKH1mSPE-o>`ak@M=;HmGF!lR`Y@59XJ6jf%Vwo^Oi`q#`5 zmVTW*t8#t-sogk9&$wz*k9S1tAMEV3xUXI5lx=7%T%R9C)V4eYAWxlDlmztVu&=Jd zNF=HMN(CPhcrCmf=&RYY7k^)%+M_Qb5)*zAYF15`&|B@BMk_g_| z%sJQ^@9F+gyob+({NgW?J&Zhb-scM<_|Ya&WuhXcmfm4OL) zHcM3_DJ8Wy;BY52q3ofug~Pf+dS5*Yuv?7!7eW3ACu!aqz94PQ-?8pBvhB1 z6o~moXU;dX^LcUxh#nNfVoC?aW4S-sP&*I3?`l|v5ktxDPN-zH={Pfp)iO)aRvC_Q-40pQmeYW3J>GN{Z$ik$g@L7G6h+w_rD!nQa z+^>RaU^fl;gYWz8fjcR;7XUJz7#q7dou^pH{Nl;(ZX&Yka}KlR0~2&w!W9(!wJ_Ar zFl-2~F3RpmgOEi<(cix5Y>w<%!#ds^Vk|nHCp=Ch{{B>&)X|7ZqUQjO+oU^OvMA`t z6QvhQbp)u{0KesTbSLA@#nE;Qjhy>+wnW+9ULWCuT(MAdQ5reE*R1nk5=hHVwf<#M z&WMnm#=-b!jhlCrq1o*hKR(J~FKB6)<;#1c@)4b%121*^5?rm@qTOTV+ z^sck)+0B*!YBMv}NG-?8oGcC{Pt@t2ET*e`FF4~^>ekZ`R3&6l4>(iGYN7{Q6Ga04 zz5}2tdI1~rvwfS_eI%rb#GBw{|L zZ%wF$xv*1HZ#ZG7pcM6*9yK^QEyTCyT7^H26^H20A0eo&&7)<_-Sys?8~0jXBkePO zlNKt^kw`qN-o!YS|FxMjTK36c)O5TZl5%);!73ct9=mez1RVZUIsp*Sc7)KmwdTIt z1$ZRz4j$ltu#v#pb~Wc=LNci{G$)6;UN21)+3Wl^&n0<)J`lvHaVjB-f?AGrgBLTU zI!TR+jZI90OSP%>?vpa%m?-5x2OWdQN1FS~pzi0nk}y7Ruz=F8W~`ZR2`3I}cefeH z6Vz1a>V^grh2vk?J(V`&)%9Q?f4ni0g#_R?kO;G}?DpE{ZpjVbLE@7_ytb_-TYZbp z&zp4ETfGH_ht-}0Y$n>$Bkc41ed~VecW4R%VyYWMC2w@!EPwbC*T&{Ef9#GFiR4;8 z&}L+=FxsRfuZ?FlBc+?(8DY4uP87%MAP@6(cR$~2;#*zy5q7N{B>(m0=`Djw_A~e> zRKy!N(A~4+LTItNp{71N`bIe=$EypCg^<0LuM>8WSu8uaV7v$w%6HWvi1E*GAjL>F zR;915KK^vw!t(t2&t9A4Cy&T026?fmAE8h!tM%}OJe#meC=fACzIc3sUhK1u(joxd zXV&OM9WlB~Wv4`^z#yn!CcW%_cDFBSP=fCbKgEt1{t%^E@hZpbnaUI|XEbEAy`3>r z;4%cpLLd;;=P}u{Kw=GcdjE>107y>u2U*zgRMYv%iy}6tg($*rrYrPaHd@of*L)Yt z^`H5V7u@@7NAC?c2dYZgAg=f$tLU8_e?x*)Fr~FBR5)6Fp~8sfuXIWxi2GyP5gZb_ z=@`df0Qx##=(Eptmm8)f+u0Up^$V~qpF$p^VEXc~Gtcn>o(v zO+e86(2aTwkpuU>CFlZ>TL2PaBNr2eooXq==km7lK4g2-@cimnf`Xj{kUIu!b%aXV z2(3_QFpxhnGdB{Pp94#D2Z=&C$HvZ$mwaawQJE9nhIJa^LaJisp{`lo`cemz17~eT z(U%C;{JX)oRCP86;8*e-wt-cvJ>8f@YVd~PrEKB{li}EHM`Znz+6k>j8b5n@p8{rW zG#Pts7|k4bGr_oQt$C#Saj*bwyh1?4UA7|M;jFA`bI%OT**mN%F!LeEi=`8Z_uX^& zjuJWBGXfp{01TWp{GR)_)%|_dL;oUmd8o*3_C)!m<1HwgR^VPtC*_r7Y+y-go%sEgojJ+mPrq%7} zluNQ;Ad~YD1UDCK6Z0w)22-I=##z!4)%}!*x z2OL^ns-(&GSnC-`=*wjBKSQvV^&IWA);1KEfb&tuOjtOqqlF-*uAmP+L0vuDS?(Pn zXNT^&eB3Su#v*FQ#k%4OfevMVQDGVelEG*8Smoh)!DY0{LvABs$F<%IK{V(A>QJsr zvD_TZ^09><42*qJc3OUwK6rZ6(k%MMj|X{d)VuM%tcN;!yLH?U`7wX(w`|Y))ajlP zkmg11Bkq`X)u7dtmYERsIqN(W3VjX880HUGGlkM$AtR2PadIL7@ z;JV|@aD3uz8U3Q>H^UiUD7Q7mB^^_Ba*KCM$>9_H03a~HsVFuqhqZH60DD9q#OdkY zFA(P4_3q?gF{Y@h`-yxF6{opbZFhG2bN`!_CT@d#^kknZRQ%^;Q9-v)92%bnHHhXF zebUowvhb=u`ySy_QgYcB&+vO!oK<)lWbC6ufVeObi7xFSES0H|L|q&^Nk*qU3#v;u~&?NWDIJ_g8f&%STgs4$N=oYKWca7j)nFShHXCp ze@M%p(b}qAljzjufqy+M=o$pBYn0StUG7u=^mOP)F%M>z?D=#B6fCa(n<~v@{c%c} z78_ohRfE19tSDk@n%{YjBYK!sCHwPd1{V5`+aMwrQO0!`jR-TZHkUz*?%%!anf}F5 zM%}DkCcDSr`IQ;pE%^Koy~)U8OL{z=h&~WR>BjVkeA1riCRXU(llnC0*T3u*>6{g} z7VGm=r9DrwZ_myjRpZGrcvy&WU)*D^c0|e1lx{378r5$Bz_s>-| z0T)g(({YIu+HmyLt+otLN-FT+T<%fw`@D^~yi=tb{(baSKQI@zG7N$3P`f=}Gl+g* z%^%G3)1*{isWBVxieJ~*r$M7sJ^go%NeiYIV6nvvE%_WB$29Ybx!Spgo%DdrLN=Jx z>3Yzy$tkgTpD*F33*M+NtC+P^tkwj*Th#0d1mkVzv$~00`q53icA+^ApDSL+>wUx6 zAEF%JLLmNZ?IJ||5E?|ls89CEL8i$6J+C^-vxV+8(bkT5PaT9pWu)0-y z;Zbz$2?lEQ`nS@P9oZf+R5VUoCkfq+%BXjYwa4iB6${U;!)K3{0qbV4;vYbWHoL!aCUKGL$&R0k z4P<2L5^E;OkiBAi=l9waYW235A%}00df2Sp^;)ewD5Vxv+!|scYm({r5|^>0rj(8P z==nM@7eHBao!14*^bWhVU3qjUCIMLSs{Ybb$vW2HIh6t}&OPg};=AI=b>rhHbwCtx%5 z4M-ahEgNQI8SSmwvyYT(Po7{QODToQ6ye7db01=L-u3HSXM1~YU*?;f4V5_ZPep?)L%(Z$h>tK9z-^9~5?TOec zzy=K|h1MtxKBO0LSgY|M-SE5uTPbuu-xj)-p<)fF$%sFVdkD9 zbbY66(Nc&|kGlR=&SC`OiOx8b;rpSgnOw`3PQp6!nu4zvy&Af+Y_D^1u|p3jo3$pCCTM3v+>8Awt1oF#x}I+CITzFbeX~M81g3Iba$2q?s6?Xa4cTFe81Xslzc zkCckC&7a26tTqdeN@$H;j1vUc#B!1A*Xv<((Luoyo|f~%^ni2G6Ow)HhMX$9E7Anw zKyiTys-L7d6&c74pZBYmvfC-O=jk2dYyF)xu%e(KfBlp^8^F0TO73#fN^2UY4~}~% z+SrJyb$6d5ckM?!h-vs5JG?lx{TOP#2a`Tjrzx#;c^Q4F+>-Jn(J7Mr&Xa$QPYn|} z$r(AYXPxGH68ex4Ez5DX)__iAq=>+1KEbfj336=1@(43A*Oj1+F4d&z!{WWB}M(nkv9>bh25qBwki*< zGsjTs50!{2pmeG8*wfX0*__DMGkx#%RtjYx6iO%hLVcsOJ=u;6J$Jd`W^u?3EaA$2 zQV7VJ$f20p;vogw*#6Y1)$#fzO`24Rdy_cG%S!z8^ZBW>`t52*`OmQx%!wE#z#pdWRy|e zs2QE16vl{t87Mh56cwklAiy(sD_dY4>zgl!I}OcWB&U!-C{8#W*a%RvfMR9b2n!z1 z^)Sh!otG7jMgr4SYI9b_us8C4G(uW95cCuD2!Q<#&dlf!n07Twjy(9NV;Z?AtkqhL zcM1PBFx(Q=LA4}+Sc7EiW?@g36&pMPG}9qN28^L52^-{iBgnju{cu9g&%t>7>{thyRg;l|kc0IiFcOH#?v~`8$G%7q>(* z){j^=zE{t&sbV8FW{EBg$qID+yf7rRPi5PwaY}R;8Kg;5+CEg_$~dGb;KN^9^Zf>b zu;Ka`=6`t{=rc$qLU$NoAszu81|f_82c*VYC?K{xv_>=hy+;@F(xNS_60m{+6 z2WK)^rvhx0j!vb#s5v_ff|h5GjW}RfqA3%RoP(bh46CR2U7UBFftW@m0+BKc8!_&6 z*lVq`eRM`kq@*Q;Fsa?f=YoRC`XKiL4%GWh{ub8caRnq7GN-#a?;k;c8xybp<=iUXi`#O=y^+-R=|%lWsckF z$bD84PoUJ@*jUR5Y>pz4Opag>Cpi0#srY(&f}|q-wyL{?G^q?(0VeF0_qX)q<@A+) z&=unO3+DTDUiZ3Bip12X2W}u}d#b>?hKB7tb7sGTTGzq4K3t%5owcV>@gD5z?^n7* zy6kaz%87n1r2US=?AS*zsu3&f;4IDc?7hiaZO)^mpi-`D-{ z=>j}F+(Q?hcqF^+Z)zlBkQ3u1xjo+$Q&q*K7E3$UH{kH&&#$(u%7AXX zntJ-$pzERpM%IJ529IwcE=G;q;}eby6l-0&MGgPSfdZWFh?U{Z{^Fat={&g!`-`~- z$Hiv%OdclsuZ=*S9v`37_LchG+w%P9XhsjPd>SwDL$J*Sjr$In$dy-&8MR@biW=Kv~PW?^wLy)AHfAR4wJAtiNvx~C=NIDLLR$|ZOV zRDZ{=SGFeV7ZzBAWdzcApgL8i3@^JHt->zf5$DvX)4K3%6spk`6){;&*pA|jzXPfh zFQLuBQXe_SP3YF9pAw zD{?h_+=}~BK^((MDq@Pz*F>@Ov%Yin;45ktC@$dN#)aW&&eLih9&QzeLIV8p9+QQN z7Xv9>f`Oayu_sN)otX&Q;b01tj|~82(n$F4c*y8$`;31_L`o2gih=HnH{%<9>+jES zc_ek^_Rf2a!{L9i)*nEa6C+=`3Es`HD_Ol#zi{}K=WldNbbhH3!8~Aq-HZCsG zw;owXHZ~~AIf_;jWBP7aOQ1(+*hZ73-Fe?2LER zQ=hS=8pWvATmTJ3PIEwJzi19Q+pqVjcq}6Yn2$erp(N?vVq|RG{FubM4Mkxhz)2K1 z!}t=+dfNm1PIjvD3E*KDetw()vp89%cfX$Sc5#a-*jU%ygu1RS?r8HCIq{tE;=&W% zqyQK&6#}Sz2coZ}5a2d)^nPB-j85fC1wN!Z0b0!Ngw>NFX)Or<`61!iYxGy8I0ysA zk*rZ*@0}xS?^*dd?&6eM6jNqp2V{}Nu2#k^;#Rf!UBGI>G(xhmIro)SH zJ^1q|voo=MeG?n4{UIzeMhGzF5API^Vr@*HUwun#Z|kB%kGLk2APJCXXg`SkR|wF@ z2G~6M4ro{W=SJF$1g5|!afG%B4|vy)e6&eEhWs9ToB;UdJv<2%VoU*e2^ju=Q^uYV zAtAmY5tyO7-4k?clAV_3aT~;p9zwdR5av2rd_yXg$vI{Ta9*`hGgVciSz=o=W_)<~ zRceYqiU0a%M{ESpml1Hbs3h#U_@d~;2XDc{8MB#4;vMhJ_`AR)?!c-v;0nPM)12RO zLpRSyLhJH6o|nI00Z=BIOlhDw60yyk}omz5oTX_MAADov0OnoC-p6_#G@Ya9M5(HoQnBC^2dKkT(XPg$rnG~E{My*wowj4 zJHiY_kd)#hap=Xi4jwpYFjdZbdr}hzC18sM%&@27cs&gqu>a4xu9Kip*{SsF=|Ewf zb1UF>HRk1A zc0n1LK!7wf;1h4s2PRL$`?lI!P3^?ABWPZs!*+BVAnyNpi3%Swb&0@*jSi~hYGj4D zxJpd}RA^66XotRZ2=pV^sMkwxCS4)H#fBiw%k>cadB9YRc>BU~>m+}!SxkN|D9;f%d2E5I4!`L`JZ#mq|Z z1stFf!yd-rNSJwiF=k7Oh>VPsC440o>2q(dI5U&}FV12_0By1yx^X~bYi5KD^O#F+ z*2~uSKH4rWyd&T{VS=Q{+1c6q_wVEI6B_0}{Akw%AIUX&CH91mk93m*MBiosInterfaceexecute()waitForKeyPress()launch(OsInterface $os)powerDown()Facade$os : OsInterface$bios : BiosInterface__construct(BiosInterface $bios, OsInterface $os)turnOn()turnOff()OsInterfacehalt() \ No newline at end of file diff --git a/Structural/Facade/uml/uml.txt b/Structural/Facade/uml/uml.txt new file mode 100644 index 0000000..e4b0b94 --- /dev/null +++ b/Structural/Facade/uml/uml.txt @@ -0,0 +1,20 @@ +@startuml +interface BiosInterface { + +execute() + +waitForKeyPress() + +launch(OsInterface $os) + +powerDown() +} + +class Facade { + #$os : OsInterface + #$bios : BiosInterface + +__construct(BiosInterface $bios, OsInterface $os) + +turnOn() + +turnOff() +} + +interface OsInterface { + +halt() +} +@enduml \ No newline at end of file