From 6e4a965496617d5f7f111c366e1cfff7cbe61b35 Mon Sep 17 00:00:00 2001 From: bekodeg Date: Tue, 10 Dec 2024 11:09:30 +0400 Subject: [PATCH] 1 --- Lab5-6/img_7.png | Bin 0 -> 15534 bytes Lab5-6/lab7.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Lab5-6/img_7.png create mode 100644 Lab5-6/lab7.md diff --git a/Lab5-6/img_7.png b/Lab5-6/img_7.png new file mode 100644 index 0000000000000000000000000000000000000000..9d7558f2b7eae66c01d39faa7bf6548be1500d8d GIT binary patch literal 15534 zcmeHucUV)|*Dh8@5phICU;t4mN)r%KARvO$iAXO2QHs={l#qlFl~F|L9i%AIBOO6X zKt*YxlYq2D>4XwW5^BgjL1%t5-~E2~xzGLnxcB+)@DFfua`rxJuf5j0-u3Q~n}%AP z2l)=Nv9WRLXlveLW7~sfW80PU%WmMxGckA>8=H!+j;6YazwLbLfkYERQaxtXv-+iH zg;T;i^v zFg`gQ(Qus`>{C!tqmv46#^k|r5lPH`)VP0@sc$ZMCoKDIKZgqY@L=Q^}M!x>XJ+r4!q zV9S>mI=E_NX^MnfSXsVvAqBT+D2Oy=cHF+u&m|?3iG9f1GiB62WQn(k9(c;bmATNK z`Tb-|YUylg&Ng8v+naC!E%BQyG%5L}eBeMeYh)!wU*(E8Nv`{6WDvA18MJj}_&z(h zHnj7d@HnE@5;XKJ&$;>ATWh~&|Meg>)1iI5xDx}?V;^(c3{pS7N>kDOX@}W)$@EM4 zns+`u;lH)|e8m&_s&L!CB{p@FGYvfyL^P&G)ji?@5#G*HA}ha5%)9ZQD8$>LY#7tf zjj(hpGfRk#SvOR4PVIh@z`ma7=PEX%K>LCnp`=5CC8 zdc}6UCXPpSf;7Wlch=gWCKT*hZDbHv0nfG#MTif{peIRLusHMnw}|lsay9cuZ#^j54Z>jujWbX`Osd{4ymiM-BP)@oH?tYQXbk*KUCb ze?_wASMRSD6u+5!#Nd!vY7#xVN7c9J*D=C5)6^Oft7`AwLPh+EiA8xn$IZ91b<$(K zg;+@AnU3nK^W;kozr)Uxu8UepJ1s#X5S7P{olx)`nix6lvw(hEH(0ISP}>=vSE}-v za}`M=s4-q3L|)5XT*>--~>vfh>|b#E15up4~0igY0@Ns6SJrHNI7m{(V9FG04qZzNzl z+?lWzi-X>>>ykQuj@I$?54(&)RYc7%dyVSzV$vNG4rlx2?H0O%Uf;k{(!3_uL*ire z{2Y6)QfFrATQfakfjO5pl1q2$f^zO)P9m>0;29r>%y*M`QI` zhmIdR(Ry4|Ua=GZ!ibAK#m6;c{Y6bW%AmiC8X)v6=;y}6BtL;ldT8(0t6$HAL3OTY zg|eK>QBuI5@wkEjO5P#4OELbd*ciq(5S*SB2kRW;dr371wXeLCahX^}3y)y}>FGq{ zK2eqr{o57U3p2xgXAhuuWavG3Itfh)S5DQJOh8 zH+K$i%Gt-HLXwQb`sYzveQXMSQ+KR@2>NsrTW$Ycx9XE+KS_A(iejK~;~SoWTQw#| zm>2bH?Dett;l5#maRz&gxM;BQn3)}mPz8<6)l3@6%O<-Q0*A$U(`i}ImU_tkLq@@l zu4#x%C|UCBYdQ0oB{OifBZ^r+!kxJS2g&~n%r4H>Qt@6QtY~9hm{4%`tB6%;GW4lF z_eNuWFq!1h)1mJfH6MLgCSY0wRlBN5(pV8$uRAx1EYu66&W7-aakqmig9dx@pjed@ z#=0_h8q_xg2sF1x^W6{;DX$Q2q!Qy>QzmxA#ak98Z};c*e-pSX%6idR>;@0BAn?tw zo^O9zDF~jMTNJRZ<`B^GhM961{~~%o;Rx+!Q)_wZg`_HPL*3tlw_jnJsezWOC*GYHsI@n8HOYK431noachZh6*{~DN4zV zvW&IHE25qPdt!nEZ9>YMQM0#Nv6NC%IZH`%tg-)u&ztllW(OMPqAG1&k$|05Z2XuU zWSIODgH2Vrw)CZFm8LbpKKk6tnE{7-LOE> z8r}2fUrwoPJqgzGr%ePgySayxUGB+I$2 zmg{iu6xj#mFldnBih-`9 zT@hiTW%m%$daSJ5`KGYa(!Z(44ZrD*z0Pom$bMCPlOgH^jH+*1)dFj#eDN34T4(q?qDeV!y4QFs|IV>D5~oarU9#H0Y{f z6vs*Iy|_TX1H)v!U!Gk5lJ6!VgIr$i>BV8(TJs0{!D(56u|$~Z=!{~(8}Is$QoVgT z8Ibx_2xY~I?}sOkVXZ_y9Vekop;0C7GkDm|<(o!e(qa~U1fgRcvz^TaSYQotZO|~+ zFKZsKKr*vAK=1avlK=a(o6@%`0NgU2uBGdAFD;K}4E5F7X9db9#h8pCzpk38lAPby z7OC2uKk_s**8Iic*pnFm<_NM4>)Qb>VuLHsr?y|!)!rX`SDCYL9mjGogo0HJkP!wY zQE8Q^%G$vroE2N^(}x?TBq6j0yDZ?YwEkrcCrPfQM?apEbV)CrEi$55 zchbEwDx3%c7s0oDHQRUy%rOAW3H=KMRy|D@xz;ApzZhgG`>(m&(Psews%yFE&YXX} zdmg7T{J#qjZ>TfWIM_=JL_exTPY8QnCSU~IFKdlOhc~7abZt9!*?tJcQmZ^E%A8X+ zHiRl`BORAu;vUhWy1?E#E@Lhn;rA(YEhM1-4MR*nM!iXuh7m#e+AK zy*;0VOMlAqod?r?y!g1a}N{(=I=c{*zknO9;1yi0HH*D9s z^yDI2z}O85L`|$`!lR}z+j3oKQppldEDa4OySsQmaLvSxma-cuzUqwefx7ttH7H$+ z4lIo1Tehmy^ELHVE=}pdPhj@fo?0pEMi&I8WyGAj_ zB_e9N>YD_Y2LO!8h3@*w&W05&J-l0T58?pl3BR*J#SXu~ov+2-p6_M$6>2y$yhgvY z_`OR#uk0&OKi7&uZ`&cB0+0xst(E@x(>20whc|Nq@4lVBQd(WuG~7N!ElWX@tPnXn-k?kb{HN1`ykGVTE!)nsV9vNlVG^H+%D<%wu5=K6bMo>)_} z)$|MV8Nqgjf`~J=HdaI+Il!fT6K{a1whj40+qw@5RG!pA7lxt58%MKMM!E)G=$$_= zVkV8e9RZDgm<}Q-iYpC<-rH7b11K#9 zit&|2G+Q0RAAU68_#x7`&oh3tH&3Rw>Sbj|?W9nqzciZ8WF-r^K6xrH=sw|0z5e!S z{S=A*D)y0kN+6*iM!L!@-zXpJ*>!;-dG|z7yy7!gNy@L78hY#j$AB5`defG?3THcB z-0cQEcE=)wj54iN#?Ts8=KgDr?b4I)&KL8i1eB0bDqpg|TZSN$UTGjcz2SjmG`bWG z!0ueq<%!%#_y|OOvBK)c8j0>LI%DkxdJ)G0PiDJkU@h^Aqdhj`ds1Mt3;_gJmlmRP z*;b?fE;v$Jl50Xjx8f@Wq}bw6oGd4&9BD=56H!dRy$_w_4!rdciVpW+Xi zjJ;EXW3o48$sy8+wd0^T#PgK}xYZ@*#JZ98X zUpFq>0BIreQLSuT-?x`d{omvuLA8$HW5=3bc{A@~dD4}1B0JNPb?r3hfOm(qO!l{d z*C#i-V}JnbKqj29IO;WC-`=RCcHMXgNVc`?xEg5? zq0wBmtH?fp2MNGh&9|FF*U6k2pY!hKq>2O?aY#q6 zdXtMYdgK@=cHZ2a_$w2rf;3%0+v2e+Gnbb|O`-b8_B!r}X`p;nb;9dxybcu^nhBO0 z0_u$XlJSbtR`U33JEMGznk^AMdm%^dfa_e%{uwi|g7;RcTs@!gQ4ikbsZ}ndo^5sp z8)Ov;N70-+VRuSJyb~&m2wWu|tgNS{pPut}M5VAqXTO*tgON$-pP6s{X-$0(^}0Ph ze$kq`67sXDHzU}=APsD=+Gww1vaoMt1zNOh?E>xc{Jyh21+dm~y_^&aNWaEDYU6y( zEIBwoDB`CrDX{M`^=lNocUb}}yQ`vH+hr{CPQaNtjahM~E;XUh{j{#3xl6VFSB1_f z0!>JRoKz-b7>zk;lgo-x_RJVT}c)CC(C29Dyj<%uu zAR~J)k)GTx^dNtaSceI%h!+5QSaZQv1x!gmbJl!5-eR!*iXBrOh>lItSQDWc5N`8W znHoCBhR!OGfAwk~E5cyqOvzl`NbsTMffa+e<_%!`$`16{PE=$IKJ_>aK!Qa&Swkv^ zmsY$kva~h}5CNGBnO88B7JofCj{zswW<+GgzI7+VA)Q)whc~PKAQn+E5&?}g^ZT5G zyQo1v<-u&5Y`~9|^L*R%mq)D;v%G;~<7p?ze1B6aqN3aq6$%g2Mhc;t9Qd4Ne(c+5 z2#_)A0>xdj-{xcaU;-*O4E@*e{j_4BGIL8O7FDov)kY$a-U|H}JSa;5iom3+AV28j zAS#~`?eb=Tf`3){6uI+OCdziH+^z1CPu~^S6ne6E{;ewzMqL!~w7~0pJs3m7P;RJn z)9&UNfUA9`2_)pkGCMjyy`$@#gH$((r&sL@p^90er0%3tLI5_U$pD%jAog6YYSp~A zc*m2H5WYRe2vBgCK>ycFW><9O+1_}M?5A(pU92NlA38iW9G%^-b zC-p7!xOvgq0_K)V0*F=wc<*qrSJt4yN-{d}!2n4Iq^E9JMSWU#HzzYy9h6c7p9OMJ z>)GYd9&wuNNCdy{$I7%-K{PqLsFldeU;nmJpR_14kb!Pi8aNtKtHvm(gGbTfF;b-M z1-Zq`v{|A{(UqL@ah;9l5=i4i;@)ZH4`TRm?oFXeIvY5E)X=v@F`CzLF;Za^7HhUS z$)eMk7v9&#*j9O`yE@moMOKb2^Tyanq-rw_KL9(dy@nPz;6K^EN+1XUp-%3DvrN)! zZ-FINzKG=?WUTF{oN(8$6kJXvZPP2|oiCx84%=Jna&(HJuyK(gLKix?VeKHv7^nm# zy>^#ZZ~$o!J&q1mOes(O+|L<)Z?Gc9ecdoze|jXEJ`>H$=kkZ=@%P$3q>K@`IQ5)M zCxYK>gek*6*E%9_zxK0?yczm*$H;9)`su170ovWVAt&NuTZc5^$b$N{dKZ!wP%U9{ zXDkK_^8=S98H@pag80OF`R1kQFluATl5TJR9oD!~>Y(+(bdL6s#&x0zJ9@Rtf^dZ@QF@EZ=Y z9NM;bp%w4<8K66QS081nLgX~g7zq4K)^`Uv79nL*-$Gf|?&N5VItr)716V0(;chng z_FyOdR~DgxoLRYt1WK0GlS)dy%9BMvz<7VV$vbbT#J~aGtVKjpu*W6LwEIk|di5+V zEp>ESHfXaGCz&o%mwPZJoN+alLl`?Uy$g6&(sU-+h`2aY&v>z3IIK(4%3c(2S&p;| z*jj3u?JJOwk}_ydwLSZ=!mZzPWwQN2Ep$H&p->SryIQ9Vuo6`C_wTVluH(+5R!xU% z0p4*1n9!RC5?HhzFAKf|d`B}^(a_qZM!-xB-q|6eqoad^gUXaz;|{{g`(8|mfux5y z!I`Q_Qww^}DyB5gqfXzUm#U2Kv#xM=A=NRy56D>`IxEhe5e^E;5pmRLU<`6Qm*dB8h@6+ZE<`xW9=A>M?JR*d2XSTmun{B<*hc zTISq&Wh&(iZ@KqW$1>%+tekVT?`&U@om$cqwHFNT!gN2+1Ot4GW@w%ySNO{0OK71j zw)*Ycx7pd*zIN;d7);ExrLC>>O0)alt4Q0$g&K-zObdN}sM4)pdh^g=mG{)(iE*1G zb%X1F^c1*dvjGeJDipZ(-J^2E%-r1E%F4Clm4K2@WXj+hEv_rJ9m|H-{(iRrdL3t1 z;W?5Y_)K0Qs1J{ijg39TcTqb$>I_4y7t@`w!yoO;7v3tC9#9Ir+4qKEp7K+QCHeWf zpQfj~-#FIH(bBzs`B`;qr$3X8n-C_!CzG5-4O7Gw?>C0>vO>e-m?DES&oqOg+H+T4dM5gnGt2l#`Q_2jUYIsudxKY7t3Ti+C8& zfCM*%3*bQelp|GzLB#lrPHiWxjc!8?)P9<{9vx zEvQ5&UaR{6dU8Y<^;ig))>`D#Qvz3$gP=9ky#vyWkCg($!N`Nc*EaU5?K}iXGK9W9 zqHjNBTL6ggKqPuSH(2e9L9@T-Ts`*b3H3m*I%`V&m)vuUikP!@Ofsqanq1OvD*lT= za2X}-I@|zy;w6mwWZxCd_5n8pt%n#HEp=&dt;2pBO@$Go_V_If&yaQ%egZw|0&a6= z-PUxS2ZHbFTCA*RwAVK@h$Ps^`OR4{&Ag5SW;i^UZONI&9zW0sv__+y{N4Em3w1Zw#iTb1i%X?c+Ix`joRX zC+1csv)Q^`v+vmP<1Od5EkB67&-wOCCivb{V3fRCzyY>l>6@#RfikV+4?tc(4XtZjKNB1_ELS_l|PvVW`c`U{kT`^09!!Ui469CzWk5D{&AB3^NsQN;cu6{ZmVg&03qqx z)?aI2MQAO4;UZopPQ1`UBK-{tEG(H)APT_2ui%Z}*?>4zTwHu%S0u-Ba+G;E^UE={ z@tB)e*RNjqanmW(wIlf1ocoToRtpWT6mMXl3#+!$K+3s)=q9`XZ)C}8u>a6f)! ztJbqOhDnvZbEy^cWq{Tr7t6IDKjC^B_4q)K*xpAI+}?zV|H@TiU7YjjJ$YIc9Tllk zXkR$CT>oOLGr(;&Nm?2cvXJ*(;7xb;8v-RKp=kRGt+--&xByJ&1N{ ztjC&}iCArW;sMeukvRdyy$2`=tRn46L7T~`I-XjJk8h}G((C;MTaYOr`B?U%-7QiO zV*ZeP^lu6S&oSo)!Yz;nf9bYRMUkHv)Btol;l_1!d!w-mNGW!zxP&-gdNqHHXJqLa zY!jdW$S#ga_@T`(<$(+JFdV?@Yhyc9c2=ufJUzc-Wc)G|3HEhvi-cFue1K+eX%Lp5#1#tnPPMFs$`Hq13WNXVCNuKBaG<2m zz2pjXM@(z@D(CqCBRGD$?^-h`?p7RHgjmPoUHVlSP&wjSD?4$lx1(r3MsR(uW~IA} z<>`R!-hnAXFrpQ0#N*4?tb}}si``e9yN~?s7G1#Rdnh4!3c33c`Pn1T)&_v3x-`Fe zbKBrz!uLSRp>+(7pb6yAOzVoBBjbC?MX?Jz4t(EAV3GbGOK+w`?W`HK3eZa^6Sh!l5welRyBUMok&iqHP zd_&Z%BW|vfl(e|@yZ&CEf9;a5z%Fr1te9H7A2LZ{BUUcOan-U2U58D82)jHRFF<|^ z^v`t#HyTHQwh%r7T0!ZP@U@~el&@@tM}+=#WjuXuXqk*Px5bi`XQKHCEbnpf+ZR1U z)l`4vZnGIvSqP|7S`H~BDiHt{I9Dth4Tz8CN8HS@dP z8OeL~xU^{4-89NA>dm#QwE!6Sbb(~;P|#{A{-*_qxMxp)4zFKD-QOuunH0q#ZBo-y zR~$2NTsylLQ|)7Zmv$!8#qB0Y#XTQri3h{cG*!}nT>P1%;QH_UfM`ql{JDZT6R{Vw z0J+@S_@f0~{=U2x*!Qd^w6g-xgjNc4dZ6c+QwW$^tIfLNdsa|h?}lJ@M><{Z^efzK zmScvID&XR0ca>{Uc1aZx3t0jX8GlDIhqZ^=oktEzkOvNcWa5?&s!?CpDfc5jkHuNi zuJ?Y*7zM-xMC0G;HE>N_F5?8nU~65qu`fa_US2Ef0>cFerPu!ZLzh|9K^yA(@`| zh83Y-2V8h1ZEjqb-5JErb>i3wQMQb0_V%x9^BFQ!mEgbQ#nygmUTZ19nXHeWo~&8c z^{dd@ft0>s4LhOhP%e%TOPYx({d{lwLBub+eVZWVa_djRTAg_w@}R%z`O7MeZQppgHr>!7$0YoeMP}av}SzStxCOx*m+jZCVKtWsuMJO-TM18I1cZgyn{&N!^l+pyb)nS@Yml1 z-Wnh3&+WS=@oL9>+%vst!KW=*TH{)4>aL$+ZL8L+BJJ4pUKcJ)RhRq$T$}G*N106SWMU(cTC@G-( zKr8{H0EG{rf=R_r*i#(a^gZ(y2Fo;xwk7ITS7cw9$EPFb}-?U+`c5KHGngq@Tb!YILFmH?3+(9O%`EpO<&7YivX+^h}- za-<(`#O2xDyfA*bPs$NC_T;S>6a;>=7-*~9A1cH*D6OiQ*?Ek-vajRtvPnQ{9$79i zl(l(d#ZmBZ`QyVK%!16nUCu(a=!jHAHZg-P*n7dKv0+jYJ6crYo17#`w6g%RFOg1DTNV9 z6$_I9aKSX@*aXIGJoYrw$%9^N`ggvmt1TBfEE<$W3b+OR70}Z-2CU07rCEXoJ(i9Z z>%1=7QVxk7{~@HM5H5KRDF9t^G@(}|Vm;a{kjW!gM|NiBfh{+w+xMpmOi2#rp%6q~ za=y#z%jIH-M-G4;W6_S1>|$K|`W}DE5Y*5D19cmKud;2Qs^q2JG#bdms5&vgq_`^t z{}CdraC;q{SE8h7=kss2li_uVy3PFY0+vYoiVmYI^Eu+^+)*jZc4Ry>T7M`exF=_O zM0CDw91!g9TKW`h+v)^ZSEoY{bRGT!Cp%0bn-y z^_{t@guHn&CgLD%-xpx-I3$z20EKDo4~3}(OJTZE46h^>RnC&EDZZaV(i+q@2Xj{Q zCr9WHS5Ml1%j^wEh;m7hsUAM_I5NWb`S-s?=)vBE=R1;693VIE-+e55`WjLiAqpG4H=cdriF^6kfUg1BJ`> z|Iar8xof3%zGfok1>7DWGT@v4l6Hnw{o8cMeMoD8qriwtMvQU*ZXBEgAJ1H)E%P>7w{6BGp|D{=O`VPKFRR%nKHXvRU zuMOn*+er-%3-9|o0-f6*0EV4QP*PG-pKbi{pDbMb6#!F6aLoKzw_R7fzI_OMXcO5V z%5*%YM=xu$zW}kd1bScJXCFkcJ-o?!WOZ$6r0UMX?P7cVK`wZgFZ_=ocC%f3zufQ@m(*PiUytx;{;CN z9S&AY;P`l-{^L>t^#EJm;?x7-Qytqh8=%R&77ZNQJEh8+2p0)&9@ZP`q_eRd5n{cK9&q&U;o4Q!Bzwfz*gmuW^T>Z}`G3QS zGy-!v0bQTtz>PN8M4Ud$EfXV)W>&s^4BGeP$$^KtH!Up0i(Hu;0&Hxj9*n#FY}B4Q z-#k0OJjxEZ`)PQ}&iU0-lv9Auv#~t{X#;M~#&(;F<=Jd(UxQftgN=>;|LezV%n*wW VuiuVDd|{bE=enV0;kDb3{|6TzVcP%z literal 0 HcmV?d00001 diff --git a/Lab5-6/lab7.md b/Lab5-6/lab7.md new file mode 100644 index 0000000..67ca21d --- /dev/null +++ b/Lab5-6/lab7.md @@ -0,0 +1,44 @@ +# Лабораторная работа №7. +# Применение структурных паттернов. + +## Задание +1) Дать описание паттернов, указанных во вариантах, для каких целей они могут применяться, + какие участники там фигурируют. +2) На основе задания из 3 лабораторной работы, для каждого паттерна придумать сущности, + относящиеся к той же предметной области, что описаны в задании и реализация которых + бы в приложении потребовала применения паттерна. + ### Ограничения + - На каждый паттерн свои сущности + - В качестве источника сущностей использовать предметную область задания 3 лабораторной работы, + а не элементы разработки (что-то типа «У меня паттерн Singleton, + укажу ка я класс-подключение к БД через него», не принимается). +3) Создать диаграммы классов, отражающие взаимодействие новых +сущностей (а также используемый паттерн) с классами, +созданными в рамках 3 лабораторной работы. Отдельно отметить +классы, которые являются участниками паттерна + +## Вариант 3 _Mediator, Mediator (2 различных реализации), Strategy._ + +### Паттерн Mediator + +Паттерн "Посредник" (Mediator) представляет такой шаблон проектирования, +который обеспечивает взаимодействие множества объектов без необходимости ссылаться друг на друга. +Тем самым достигается слабосвязанность взаимодействующих объектов. + +Участники + +- Mediator - представляет интерфейс для взаимодействия с объектами Colleague. +- Colleague - представляет интерфейс для взаимодействия с объектом Mediator. +- ConcreteColleague1 и ConcreteColleague2 - конкретные классы коллег, +которые обмениваются друг с другом через объект Mediator. +- ConcreteMediator - конкретный посредник, реализующий интерфейс типа Mediator. + +Классы, реализующие паттерн: + +- INotificationSystem Mediator - Интерфейс описывающий систему оповищения студентов +- AbstractWorker Colleague - работники вуза +- Teacher ConcreteColleague1 - Преподователь +- Secretary ConcreteColleague2 - Секретарь +- NotificationSystem ConcreteMediator - Система оповищения студентов + +![img_7.png](img_7.png)