From 64fb3582f6064034886d8b8a0f835d7a6a12fc71 Mon Sep 17 00:00:00 2001 From: "dinh.tai" Date: Fri, 20 Oct 2017 08:50:44 +0700 Subject: [PATCH] Group 5 --- .../1-Database-Factory-UML.png | Bin 0 -> 39385 bytes .../1-Creational-design-patterns/Answer.php | 30 +++++++ .../2-XML-Json-Adapter-UML.png | Bin 0 -> 40962 bytes .../2-Structural-design-patterns/Answer.php | 50 +++++++++++ .../3-Book-Iterator-UML.png | Bin 0 -> 56989 bytes .../3-Behavioral-design-patterns/Answer.php | 85 ++++++++++++++++++ 6 files changed, 165 insertions(+) create mode 100644 Homeworks/1-Creational-design-patterns/1-Database-Factory-UML.png create mode 100644 Homeworks/1-Creational-design-patterns/Answer.php create mode 100644 Homeworks/2-Structural-design-patterns/2-XML-Json-Adapter-UML.png create mode 100644 Homeworks/2-Structural-design-patterns/Answer.php create mode 100644 Homeworks/3-Behavioral-design-patterns/3-Book-Iterator-UML.png create mode 100644 Homeworks/3-Behavioral-design-patterns/Answer.php diff --git a/Homeworks/1-Creational-design-patterns/1-Database-Factory-UML.png b/Homeworks/1-Creational-design-patterns/1-Database-Factory-UML.png new file mode 100644 index 0000000000000000000000000000000000000000..4d240603b405dd14780f9d995b8a66727340b885 GIT binary patch literal 39385 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 *4~`ngU4I zU6pSZm23q6>5F-fu-%Oq*RL+6`+ z0vr=b7k^CwP{v;~APs=G=P@F1^3e}=dF;Q|&N}U->}!az_AONK zBox^%JP~Yr5{{8H^Qe7GvYJ+WH8bBw!c7)Hv4r9a+C!XmS&bkk7)c&_9cJMb*gE32 zxE%&pqTQHuT?>-O1K!ww8kSi6ghmm{+Qrztsu#?(jWSV(`vePtf+2{96S~b zTi-6)d7*$IAzHj>Xs@ue1vrmj4N&-!)yo(=7d78@g5NNXJ#fu zuSV#ky4Cv6LE_sYs$LaIR^HmSLPRg^cT9@IvN0*w6At%h99}LIDULs=Hm=_|a%q=H z@roZaNmfOF_uqTb-BD`k)xrOgAz>^P>>rF}F(Dr5sqDUuAN!`*qXYCmGV_pGaMAk1xZL*dC_yVkL62cbQip5exWJqO_o0)taD=+zqk* zftHbOr#<<}E4)>Qy`Lk;hQ}=gxfDP87c^|c8Q2K{o|v3OKb}C(_gdB)v&Q1{O@&Q4 zrpG&Og?>jZl#8{856*k-t}}nNZC&Sam`>!8$$BoIxF7r@ejt|a;eJ}K=1|Q0!OrSsV z^k0?3h(oszEGEValifoeK>Bj5;nqbkz~!59~F!G>KQmx#!VmD1M=0) z{^?#&u;|jkLFo46x|LIYso++2oD;I778h|Orkm?sK zqhgr(2$H?88RtenwhFWylrg=NxTW`bs|+qAVLqW;khHlS-zxqNp)iE0bITZv-anNA z@hVvBO_PZ(A6$^O`)mbjG5?H4EAM9iEK}a!UQGyN63hY~mT-~AN2K+@Rl_Df>#-5s zTiEM94GCz8#y-4>Id9g-0hOLM%Whv$pJ5W<**i61=7Pw%l~3&aEFC?X$1yroz8kx0 z;q`GsPC#E?VE0$*Y?FD7i8880Z>TP;$SW7Jx_W-pvO28XHQXNAvw>r{wr~3E6TyA# zOp9!qn?})`RH|Gb3UInr3T~c~l_-+~u%e;bsZ;E(T57i+bnB;ypw}7>G3i(QHVAZ3 zB5HhM?PzRzZ66gL$gie|2Or|TS@0(2)dD>08Zq17r$0sBe_8!cxlR3WB?JfurSzr3O(j;k`jD5rjm1aHGpx@S;OlKG( zUq+bLWi6ENnf|K6MsF9+reLbAHGrQw`kSee7B%I74Lt&E=%XUFqI89*4HC}*-F#!s zX_Q--0Ia9nZO}j^PvhcmQ@ux!$u3jp4cs@4zSjuhAeA&C07zVrmRAbk@{tOQr`haFrP=sNl2{mLsNHq4wZ4NYI1oX~sD+<~8_QHu7L22MWOAsxJGS zG-n>7h07WVYk{LLA6c`W4%GK=88@=u&ZucREb?RUNDCz6L%8Qip>Q;LNGIbst4)Q4 zavqDn|BRkO>I5;D{cj*<&-dDy@6OGpR(Fh+!yG26J+#mvXTlwB2kI|~&7Gns2vW&( z_4D(~EGiOR=nsAMDl;z+^tAJb4RHS?E-Cr`Aa~DFpi4mAhLP>eKLKL#<{K4=FTiyt zQ*Ap5>*^s>bgnfr1F%)lS`Qii4x0Z}mfCfyGYk$F4>PbhO@_11AwoG~R9?8i#b1wP zeK08ws~bh_-w&zmSJqV_ja|`-WS}`lP)TP0K#+Vag%$?z8B!qcCyb+P3RO-5XFJF| zzDd9f*kjYTu0rzaT)M5Ra1n?q_eR0#)O+1V#B75Ka&UqaMtAXWD@t?rxZ@uJnDvSH zxw@>|AcQ3uS9kkNyk1%Sx@zIsnp2a352*8)IQ`_O`$^a#mzhNOI!)rGiQ-LQ{Cr)O z&0O^#g{dBgPPF(X>AEqETar!vD+TBTyuPwQRPv7R$bR;aJr-C?gzUprc27IKG|vbf zAG{bIGv6!-dE4HXeWj#a88%s~9hK^XB%gRSJ4HhZL`8`iJI?qguRd960Fx%;H@@I*hhmsWPLhS=bITEui+d?BynnZY*AEiBD!m!l+}tZ$V#H%nXHZLnK8$f`V`5mk zc8qda()R{+RZD!|Ml95r{>X^ItQT@Qi5Tujzm4Ex}ju4f#Myo+AE0jJ* z>)|so-x(r*oQF=MC6^c0v1y|_!Tx@0L(N2Gr=FyY(Mj|a)q30BtC_6cf-e!?hmxPw zEdViDssZOl-=pixKmbSBAsrj&d{TH=C54&XLHv%7{xQ;l(Osc&u|k_~Ir^DcPaYbM zTpJQ^i&_F42Gb`_z4?SNL7kZBal{kb_o?lN-BQZ&hobS*$yRwx5{uGvMxw~1#LZHX zfP~Jbv;&TO237BMFRGoHIz@po;=2?*D+V)74>JZm~*1DNS z`KXNFOTR7`lLY;Q37M5YM+02D**B{|lUBDdM*3+t@;o7ssO42%k2};S zZ6&$oGgD1eB8s=I3q9EG5wG=QSd-62c>EJPbTi_-D&xs9B6Y=b-V(UI-W&VcGQv4t za>`w>dLU~UMI7Q~*%FO8duEkWs;OYZIUb6rFLgxb9gj&D-og}4fPf6qA++ztMWbi% z)VebHD!(P^Ig64a#Vze5#ERBTO$Q<^PO!~6UxKxp!vkF<{$YRL8&;IydQc}zva1Q; zKvO#KIlDQ|MVG~X7LUZpWSDLyYd}iIEQYZ0QW)oq4P{a^GA;LVKUDl!;$g2rh8_YG z#@SsP$_9m2F0${g*_vVvJdY1|>Y^jX@y?C84%Go*>A-D?K~>cyN|C1ue?g-R-d{cN z@zgVa4Z>miasHDzd64pm;;jM>a}I*`hPAAw%XDkFRY1d1p@UBPVU~eQdkz$tSLFHm zp0tHDEfA2BaaK94n6Gm@Un?)w-=EV=ic~KFG$@IQdQ-AOAzx~-i~CkGnTuOhlFv}E zTd{0H??F_wK#|0jGKa;NB!?@Swu@R3Z%{Y2N!hoj{jscL|lhW9& z0U)Tw1B!Zc^pzCU&JN08Wnhs9SO~)p){5;o$b?Ci&t4xaFrljV+n)4eQkb-!@ODSq zVu#`MUXv>?{lUBkL%TY}A`#5}1&Ta;MLD53i(?I)S>Vpom>EuHANuiGTBp#5xv^_8 zSIhJ_?pwa`7d9+#)<|IH%-_A2WM?`Z0S5!o+C{r~z?otzZek)Ce?_inmFmT#MEp~@ zu5rJG^6WX;YJ-%y=8E)pJVgd8Tj$);y^JwLaB|t}FoA14@TO1p zIw^E=tX;1+Xc?iKzBQ0;z0KR6Sf47dHMuqc>G+hw5LgwqUn4IzSvCK~US}KLyDQi+ z9=FkvJzAI^F1Cm#kb+oKc-j%i-2xadJ_*0J_vO?_gFeQbKb>7%iZ+QvDJRD+mBz-# z-hqM4C&^kV02$8C!J*w!=wI1+Wf)7P-fjLVWwitp3HS0sIgXaKyMHes-aAy(ktPmF z5>x&d2h_UNAETsj2!7i5z+aSZ8kUcQJ z`SM9eAk@J{l-6X_uI|=p`e)cEe!6qKGQ}gr{T3yxqzZ($Yy++V7L@YaQg zkk~D7enj{7(*l4hl*R5gFNohEvtJRf9frYVrja0CLR)=}bV!Rlo+??oNj{S4@zImb zcSzKdh)D~onN!%K%WC9+jNg|1RsxyXs?u2s68S+QwrG>Rh2$@gnX$&546hQv zh1(&+cS94xqZ zN0`e@h<4Ak(a9+&2w7QK8Q7VeTb!SN_wnP$X;Xkc_z_X%B9=n? z;`Rp~inx}lni`;xeDp!ly{y3K0szQoxr=)P31W+)f|z$Sf?y?5n%PW~EU!<~jj2oD z!XyMSZsL*G#7-DnHX$Z{FR~txHScY2vy%l4O|-ti4P?-fXht0w-1-Z$9(UXLO)gTA zNL^XItczFAov?&29c-uR$+Cba7z$leB`@|uU-(CUAhieB2Y*cgu&2LfK$3N9yX2>) z6Ux@ESSMoqL{%$>Z_YZrCRqaVp|6-bc?~VH;<(@rsuP-#KiW*4i#)*pJw$3zn41!S z!(`_V*u{R6ZQvUmJuKYqIGGeNfyIiRIdkRucaO3IUO?j4g&0SkrlK0^ z0QxY9-MM&%@)KXN|L%G75?i1C#KG_JLgsuxKdRESb8ELRNs*dQ#n-IX%X^?bS5yw2 zpj(Oi-qdFOkXR;Y?3)l|OF;Y+;E@}ozc)#?f>*!6|dFRW!npE7Z;c~{m? zG27go8Z%wWGtY=D*lU>`f)t$ZvAK&KHkHaj`yTGZU$%Ii+TE21uPGe*bfh7H83>UM z;CMBm8D3{lGP!vHWpp_RvQzNt)GnCeV`CsRaL|r9#?&ML$BJmZ^X-P9>Xa>#d6$c# z*cfu_#@P~GncWbqj7)5|o2x)N{+EtY>-Qx8sF(1bbpYMBfk0~^O~Mv@rPk_v8y`MU zwX=cN&Gn7jl%5Q*B5>0Bg2n0`z!k+Ev`Gr=?)ayx;)}*tzLv0GNhfl>>-NpRv;HGj z^q@f$@T3$b92dgE-Av}BDQ)uV9Xrq4ipBT>U6J_Gi4V+|WiPt{^An3%hFuBIf<%jydtKrEsQT8HK-z9@ysJH1TB~ zwrxgaLT`K)F(Wq1fPl75f>%Tuj2Xk<^}n=_VBXEozG06oUZ6$)?s)mGV1%Iu(X$CG zWXbe0jl%%yaagA>bC{zeLbdD^`geFqgW0^XO*r#@T-ukn)iwjb{n4+XH^{e@)TXzE zGz=Mlc1F{sX}NC$8p(oT(5QH%thTS-C)#3O0tvbD-WdD05O?W%C`h6^ZJ5CY}hI*_BBZ|RCT{u)1^*vdu z9bFo;6e&WJ`R&93Bi*~;G;ijnXB2t=P-Xo?k}4Ad4T=@7{vTc&p!gsN=-HhqKJeKR zHZ4V<`xIbBxp%hc^6CNgE3l0uA2Kep>Y~}8%?Re0`~TlS{uu-L_ZK4Rz_ZcMsmpFYQ^t%PH2FMN?DE^7 zipH1sLyaLjA&?{W?_2K`{!PaJ@4vSH2R+Dt0wFG6i__-cyISGWfx|tVUs!mGJ^L9c zyGZtA|BaDxA;uz#-}i-J$?i`N$sBC1I1t=469#x&!Q#Kqmyjh+^7*&RdUnic{r`KA z|H%>apTI!=-OuS0fVg+H_YX>yQ~&huP1v{NGdB06ZiBCnwx0riwAA&~3h&qi{TK6G BZb|?E literal 0 HcmV?d00001 diff --git a/Homeworks/1-Creational-design-patterns/Answer.php b/Homeworks/1-Creational-design-patterns/Answer.php new file mode 100644 index 0000000..2a4afc7 --- /dev/null +++ b/Homeworks/1-Creational-design-patterns/Answer.php @@ -0,0 +1,30 @@ +n+`Ms3Yu~>V>HQf7#uK4esvJ)HVedU3euq4A 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 NvZ9(o{xml = $xml; + } + + public function getJson() + { + $xml = simplexml_load_string($this->xml->getXML()); + return json_encode($xml); + } +} diff --git a/Homeworks/3-Behavioral-design-patterns/3-Book-Iterator-UML.png b/Homeworks/3-Behavioral-design-patterns/3-Book-Iterator-UML.png new file mode 100644 index 0000000000000000000000000000000000000000..bd89ff04f060f2ac08fabc269c8bbded40afe2f2 GIT binary patch literal 56989 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 DhG%Tj literal 0 HcmV?d00001 diff --git a/Homeworks/3-Behavioral-design-patterns/Answer.php b/Homeworks/3-Behavioral-design-patterns/Answer.php new file mode 100644 index 0000000..afa2968 --- /dev/null +++ b/Homeworks/3-Behavioral-design-patterns/Answer.php @@ -0,0 +1,85 @@ +id = $id; + $this->content = $content; + } + public function getId() + { + return $this->id; + } + public function getContent() + { + return $this->content; + } +} + +class BookList { + private $books = []; + private $bookCount = 0; + + public function getBookCount() + { + return $this->bookCount; + } + public function getBook($bookNumber) { + return isset($this->books[$bookNumber]) ? $this->books[$bookNumber] : null; + } + public function addBook(Book $book) + { + $this->bookCount += 1; + $this->books[$this->bookCount] = $book; + return $this->bookCount; + } + public function removeBook(Book $book) { + $counter = 0; + while (++$counter <= $this->getBookCount()) { + if ($book->getId() == $this->books[$counter]->getId()) { + for ($i = $counter; $i < $this->getBookCount(); $i++) { + $this->books[$i] = $this->books[$i + 1]; + } + $this->bookCount -= 1; + } + } + return $this->getBookCount(); + } +} + +class BookListIterator { + protected $bookList; + protected $currentBook = 0; + + public function __construct(BookList $bookList) + { + $this->bookList = $bookList; + } + public function getCurrentBook() + { + return isset($this->bookList[$this->currentBook]) ? $this->bookList[$this->currentBook] : null; + } + public function hasNextBook() + { + return $this->bookList->getBookCount() > $this->currentBook; + } + public function getNextBook() { + return $this->hasNextBook() ? $this->bookList->getBook(++$this->currentBook) : null; + } +} + +class BookListReverseIterator extends BookListIterator { + public function __construct(BookList $bookList) + { + $this->bookList = $bookList; + $this->currentBook = $this->bookList->getBookCount() + 1; + } + public function hasNextBook() { + return 1 < $this->currentBook; + } + public function getNextBook() { + return $this->hasNextBook() ? $this->bookList->getBook(--$this->currentBook) : null; + } +}