From 0352101579dda68a75add9207e3f4bb5be987491 Mon Sep 17 00:00:00 2001 From: chenjianqiang Date: Wed, 13 Oct 2021 14:39:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B7=A5=E5=8E=82=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=88=E7=AE=80=E5=8D=95=E5=B7=A5=E5=8E=82=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 33 ++++++++++-------- .../InterpreterPattern/InterpreterMain.class | Bin 2498 -> 0 bytes .../InterpreterPattern/po/AndExpression.class | Bin 803 -> 0 bytes .../InterpreterPattern/po/Expression.class | Bin 176 -> 0 bytes .../InterpreterPattern/po/OrExpression.class | Bin 801 -> 0 bytes .../po/TerminalExpression.class | Bin 1716 -> 0 bytes .../com/chen/PatternApplication.class | Bin 487 -> 0 bytes .../com/chen/StrategyPattern/Context.class | Bin 600 -> 0 bytes .../chen/StrategyPattern/StrategyMain.class | Bin 870 -> 0 bytes .../chen/StrategyPattern/po/OperationA.class | Bin 462 -> 0 bytes .../chen/StrategyPattern/po/OperationB.class | Bin 462 -> 0 bytes .../chen/StrategyPattern/po/Strategy.class | Bin 148 -> 0 bytes .../AbstractFactory/examples/README.md | 0 .../FunctionFactory/examples/README.md | 0 .../SimpleFactory/examples/README.md | 0 .../materials/SimpleFactoryMain.class | Bin 0 -> 1118 bytes .../materials/factory/CoffeeFactory.class | Bin 0 -> 1307 bytes .../materials/po/Americano.class | Bin 0 -> 509 bytes .../materials/po/Cappuccino.class | Bin 0 -> 518 bytes .../SimpleFactory/materials/po/Coffee.class | Bin 0 -> 393 bytes .../InterpreterPattern/examples/README.md | 0 .../materials/InterpreterMain.class | Bin 0 -> 2628 bytes .../materials/po/AndExpression.class | Bin 0 -> 881 bytes .../materials/po/Expression.class | Bin 0 -> 189 bytes .../materials/po/OrExpression.class | Bin 0 -> 879 bytes .../materials/po/TerminalExpression.class | Bin 0 -> 1755 bytes .../com/pattern/PatternApplication.class | Bin 0 -> 524 bytes .../StrategyPattern/examples/README.md | 0 .../materials/StrategyMain.class | Bin 0 -> 967 bytes .../materials/po/Context.class | Bin 0 -> 671 bytes .../materials/po/OperationA.class | Bin 0 -> 501 bytes .../materials/po/OperationB.class | Bin 0 -> 501 bytes .../materials/po/Strategy.class | Bin 0 -> 161 bytes .../AbstractFactory/examples/README.md | 0 .../FunctionFactory/examples/README.md | 0 .../SimpleFactory/examples/README.md | 0 .../materials/SimpleFactoryMain.java | 18 ++++++++++ .../materials/factory/CoffeeFactory.java | 28 +++++++++++++++ .../SimpleFactory/materials/po/Americano.java | 19 ++++++++++ .../materials/po/Cappuccino.java | 19 ++++++++++ .../SimpleFactory/materials/po/Coffee.java | 17 +++++++++ .../SimpleFactory/package-info.java | 10 ++++++ .../pattern/FactoryPattern/package-info.java | 10 ++++++ src/com/pattern/PatternApplication.java | 7 +++- 44 files changed, 146 insertions(+), 15 deletions(-) delete mode 100644 out/production/patterns/com/chen/InterpreterPattern/InterpreterMain.class delete mode 100644 out/production/patterns/com/chen/InterpreterPattern/po/AndExpression.class delete mode 100644 out/production/patterns/com/chen/InterpreterPattern/po/Expression.class delete mode 100644 out/production/patterns/com/chen/InterpreterPattern/po/OrExpression.class delete mode 100644 out/production/patterns/com/chen/InterpreterPattern/po/TerminalExpression.class delete mode 100644 out/production/patterns/com/chen/PatternApplication.class delete mode 100644 out/production/patterns/com/chen/StrategyPattern/Context.class delete mode 100644 out/production/patterns/com/chen/StrategyPattern/StrategyMain.class delete mode 100644 out/production/patterns/com/chen/StrategyPattern/po/OperationA.class delete mode 100644 out/production/patterns/com/chen/StrategyPattern/po/OperationB.class delete mode 100644 out/production/patterns/com/chen/StrategyPattern/po/Strategy.class create mode 100644 out/production/patterns/com/pattern/FactoryPattern/AbstractFactory/examples/README.md create mode 100644 out/production/patterns/com/pattern/FactoryPattern/FunctionFactory/examples/README.md create mode 100644 out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/examples/README.md create mode 100644 out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/SimpleFactoryMain.class create mode 100644 out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/factory/CoffeeFactory.class create mode 100644 out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Americano.class create mode 100644 out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.class create mode 100644 out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.class create mode 100644 out/production/patterns/com/pattern/InterpreterPattern/examples/README.md create mode 100644 out/production/patterns/com/pattern/InterpreterPattern/materials/InterpreterMain.class create mode 100644 out/production/patterns/com/pattern/InterpreterPattern/materials/po/AndExpression.class create mode 100644 out/production/patterns/com/pattern/InterpreterPattern/materials/po/Expression.class create mode 100644 out/production/patterns/com/pattern/InterpreterPattern/materials/po/OrExpression.class create mode 100644 out/production/patterns/com/pattern/InterpreterPattern/materials/po/TerminalExpression.class create mode 100644 out/production/patterns/com/pattern/PatternApplication.class create mode 100644 out/production/patterns/com/pattern/StrategyPattern/examples/README.md create mode 100644 out/production/patterns/com/pattern/StrategyPattern/materials/StrategyMain.class create mode 100644 out/production/patterns/com/pattern/StrategyPattern/materials/po/Context.class create mode 100644 out/production/patterns/com/pattern/StrategyPattern/materials/po/OperationA.class create mode 100644 out/production/patterns/com/pattern/StrategyPattern/materials/po/OperationB.class create mode 100644 out/production/patterns/com/pattern/StrategyPattern/materials/po/Strategy.class create mode 100644 src/com/pattern/FactoryPattern/AbstractFactory/examples/README.md create mode 100644 src/com/pattern/FactoryPattern/FunctionFactory/examples/README.md create mode 100644 src/com/pattern/FactoryPattern/SimpleFactory/examples/README.md create mode 100644 src/com/pattern/FactoryPattern/SimpleFactory/materials/SimpleFactoryMain.java create mode 100644 src/com/pattern/FactoryPattern/SimpleFactory/materials/factory/CoffeeFactory.java create mode 100644 src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Americano.java create mode 100644 src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.java create mode 100644 src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.java create mode 100644 src/com/pattern/FactoryPattern/package-info.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d3ea0c0..3ef3651 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,18 +2,19 @@ - - - - - - + + + + + + + + + + + + - - - - - @@ -98,15 +99,19 @@ - + + + + + @@ -140,7 +145,7 @@ - + 1634096220780 diff --git a/out/production/patterns/com/chen/InterpreterPattern/InterpreterMain.class b/out/production/patterns/com/chen/InterpreterPattern/InterpreterMain.class deleted file mode 100644 index 9a916e2cf581ef9e1ed1b426288df67ecc403716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2498 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 diff --git a/out/production/patterns/com/chen/PatternApplication.class b/out/production/patterns/com/chen/PatternApplication.class deleted file mode 100644 index 4017fb8cce2e1d994aa85ec75a2e4b905f500924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmZvZ&q~8U5XQev)5fON)~2?Kc<>;!9?ZpyR0I(`#XnFfh^K8_(k;oR#I4|Cd9k42 z1NczlY%Hx%_b{{b?YF-fcE7&gKLH$L$3+QE2U{*IG)-tZXgkuE9+*&QFoq%?vwKKC z>@`1jDVB1vj0)|mzXrZ&4_Nmz6y9Jj5$2U@EAS1_CrF HTJU}VngVD$ diff --git a/out/production/patterns/com/chen/StrategyPattern/Context.class b/out/production/patterns/com/chen/StrategyPattern/Context.class deleted file mode 100644 index c1e40a1470f1facdde3672a245f179b1a7b95016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcma)3T}uK%6g{)My1H&@X7-_lMT8o(FTEAL2!bIM7{1SLL$2sLn!$zZC{j%p@Jh5HsO1r0Shcqr<>B{c3d?tX?>cJkj>mAUmO) z4EZCskwMi)8m5U|8+jBMYD@hmOooEuIwKz3JJ;?|c#=V{D|?4axqt2s`*i;)dJl4~ zMpLFyojaIAq4%R$=gZ2_*auipgQ_Pb>f$(dvsVdLWSfO3@S+Od4SB4VJ uOX4Y}-F$^sseVA$@l3S_rJ5!bP>R)RbKFABrYXgE-^My+>a3-hx$z5%(|k_= diff --git a/out/production/patterns/com/chen/StrategyPattern/StrategyMain.class b/out/production/patterns/com/chen/StrategyPattern/StrategyMain.class deleted file mode 100644 index 4664c59576ba87236f1b9291a514fe1efe4dd1e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 zcma)5ZA;rw6n;*dG&V-9TDuoJSKZX4n`VQ7V7tL43<{kJ9R)w$W*3b#Nr~5?|7Cw- z`(R=Q+k^E;ucnWu8}_) z!WhEb|AxZWa`g(<6{g0nBD?IrUAH+`U@_MW3!H_?naiB9h9#C*K?CLH cvcJNbOzdz(g|TJ0xQ_??4-pp&3EKmLdzs%WLeSNj zx}Hs9Rou!r8?7NI=ecNbWRGc<&ek_-99#1M diff --git a/out/production/patterns/com/chen/StrategyPattern/po/OperationB.class b/out/production/patterns/com/chen/StrategyPattern/po/OperationB.class deleted file mode 100644 index 72534c4cd897d4b2412ae5776dcc42d96ff4579c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcma)2O-sW-5Pg#-jmB!)`gPEQf=KJZy?9eRR1gZm3YFeBacQ=sNr_w0|K!D!;K3i@ zj}m8Nr8n`g@6DT;H#6+#*ZT*6GwcSaVbjN!k8K}2g!+ZfwYenJI^7Y$y(;b%A&hjc zZsyZim3K1EIMa@bL}nvdYO5DX*QEM^(20^_Dw0&?VrWWf)cE;U8l%cw%nC7>DbDF4 z@165}^`sJl*Xj4WeF8~-mSaLNEaqjRuC-kkE?uV+`6wIkP$wM!ZxNwsO(K)|SPbHc zN(|xXFYoW&IE2GL#E0^CIn2D4(Pt%?iP<}O1HD$|6-HYIH>@%?ei{&9jTNz8XSC*C lH5PF9_R|;E4wl|la#X)I5EdL_lImNorA^enCE5h><}6q*^~GF)v-;KPf9U fxrB|8fsug;XfFc;BMTz~GXo2V#lQ+AnHbmrxCfgc5Ph4Zabnywq@+-2f$~w37HYmPttz3Sh)SVU1V!p`<8I1U_HN|3NWGOG zk|SpXhZKPX_x_G5;#VNXv6T{~r{KemXLkJFyqWRIpYJ~bJjHVp7G@1xHIcw<2G>G6 zm&H7;XK=&BO)QwWh1(|X;I4s11NRuxYf{NzogrB&*BMe9dRH(^RizSJ2VO(??|8$d zNTI47?$)_4Lq86tg7>n`P^miFvs*j}gs@yv6ll9#?b&Y{`@#tra*i)(44Z={zb#eIvTA`Z)!u6Pe;fY~aqX}j z2#;1w_&!51B9q$QCZ>S+1ovoCYhwr=Oq!OaDb?;4_h`(QO65^OL#>EJ()K%AIh=a3 zcy0?uy23Esj|~^kV6;LhF70mdJfJ!jaDjf#@JWD$>qh4kc{W)_c4Fxm>`VVTPiMLx zv~ZE$ttbHnOp{0I1|RPrNpQgY4=qjV7KB=VRe X=n#A+0*JxGn2N76g}fCc3h`fpaII-03~UmZrOyCs1Q|+T9nd?KvAF2#5k!dZ*m+Y{)*)x zDv=P+d=%n(Q4`cWr7yFbx%b>NcaHt%@6TTVp5nQT9LgEYLEjN%lSl=b1lQx-wdpd?!Dt3laOM|(YSfYiG%hrnDmd0 zKEvx-WOO67v6fgS37XeDowV-SeV^MJReoDJfA8un6~`B+d)nLzZx!}`vZV}CT{GjR z$ZcofX?oKLTM)G^mbw;XD!7aV1$h)itSi{SV}|-g-h`nrcEk?vACoJBB2NP2aMvAZ znqfN(uVyTAMxl_ApOM`f7TH4M0q4uvI42l(W?-1=1BU$gVfH&Gy5=)v$DN_BkYjr~ zq05u@h(c@C3CF|`J$Yp}aCpKUP}YknS?80c@L-9)`yBlT7#4$fr@2Tw0hf@VHQ9m2 z5+N$hjONtJ5bRqRa)rip2o`Xa)=CtBYeW?gUdIg@gX9Jg3N&ZGLs&gULcnh%zY-u| zOtKh~l%l|xgi>%5w}?iH5F-q(xO_8_+Tm@E02=xHm z191z)xKxET*wQ?|nfJzHzkR-}0Gy)Z!^3_Z?HYm_4j8I^rB!*(;C6cx25)F)lA#qU zEyv4jDvK*IO(_$ECKl;L6w2~V(krjkf?*KGCgZs%OIc_>5^-sYyUPuYRF$nrGlqJi^lU6Lx~kLdg*W0>@KoqIkIF*nIVt?eEQ?rKp(EnS9p-B=caR`_G*)9jn&PK6Dj1w}#%F#2})4E)zXv@G3 lZJ_ZjfR9~bjQAc!Yd$8lIyZ102^{=b+rO;t*4kXFT3_t(e0Bf; literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.class b/out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.class new file mode 100644 index 0000000000000000000000000000000000000000..43a7c8d44875a048ff885bd331020e00eb8dbe1e GIT binary patch literal 518 zcmbtQy-ve07(6%W52X-V`T}e%5_n;wLWoM8q6(>~yPG=2D6yk7MPly2#6vJJ0~4qN z55Rjw;wccHOGTN%mcG+{-<^H-`{&{fz!92NxY((nUPhygU4~LeX_cKYIIZ@O!R?x{ zWbk~YWq%frWO^Y+5p^2A2}Cp$sj__4bhAq}WjON#6Z1r5nM^hBi6ArS&H0KBRGdU| z)#R}tjS|t6Cx&-LlFWiYX>-g_36&oAMND@!TW$YJTniovJ>i2aReC~->cGs>K=zc) zi?GQ#5i w3)u5=T%l^mzy@ug_ANjao5bj8*rIC92ZUDVGzw1y1+1<0UsmVGy1i6+Uyj;>6951J literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.class b/out/production/patterns/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.class new file mode 100644 index 0000000000000000000000000000000000000000..c7e88afde944dc5674eb4c3cbde8e636a58244ed GIT binary patch literal 393 zcmbu5K~BRk5JkURCn=%OQgH!xEepJ1N7YTGuA+hz)V-5B#Z_WQu8YL6SRt|C02~T2 zNh5IpyqNKS{?>fW_s{1SfO|}0^f8Jsj&Q{g&b85g!O)-1HVk}ew~AquXrtE0DpT%R zW+jnHVslw;q|=S=Aonl&z_3ViTZvkFubdGpnS1Nro;sQ8sxDOrMJ36jWqA;_6-!$b zNUyzec%M-6Yp);E%q)^YH_M|i4%s2Dx{ARwH-9Mi6 z-v{tIPB<_hbt38|Y?APS9k0S8p+Uljyxc5di-eDO>6Nfm!ZryXv$S2pC(J*U@ELPO zLZbwqgeD29gdMEgDPorc)1a}io5>y~ekK7sf(S_nJ7B@*5+V*np-X6X(B@td`$X(_ zpaLxp%tH%%9LU2L_)^4IBEA-o=hO6-)xoBkh^h)G+*Z3=*{ityN^qy!qeryh&gE>Q zM4B=-dHX_qk@pg#=CUN8RC&d)vgd68BEa zSjhXi#?9}HtLN_x=$9)p7O|BxIne$1-bv#~=Wur)9sc;%q6^WarnWhhq1FVTJgSs*$-n~iM}6( z2d`49k~c3IXRjwO#ggZ*BnE%x2sz_tM6}5`f};YaRFC~9<2^oY$#?+NMV>aQfTiPc zrJ?oImtnWdSc0V@j>$NVj`0NYOfQV;fV#%rs!tbCTrtKpi0yPig`P6Jp~0@UBRzEIGokU^o@XQTH8h+($&(*!6QtGVfk(TW!zFQZ56|Mg>> zi^o%(rqs0o+~%yC9`IN$D8AvNa}o-v!Dl)Tux^X3SCmlWHOr+u}QJVo9mq7@rur= zWL$EaLa<;B(V38lPJ|8lC`JLj>L*bz7h)5Nu!S_+F%@gcLQaK^x3P{S0W}#&f01tv z=?=ICFwN`gMt&SG^)J9 zqKdw4=qrW_&WMUB1NCJ04wco$@sD78m(~+td4d`d>jmL&dU05I(2P{D9eE@JYY4$S zhC6)#70gRVcp0r{#8GMfTs^2FxvHuUuUK#f4iXBlK_oWm7M+p`n?JrlubxT@B^??) aVI&}4agYKyG!d4SYem$OxPe3qHvS7v>K(xV literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/InterpreterPattern/materials/po/AndExpression.class b/out/production/patterns/com/pattern/InterpreterPattern/materials/po/AndExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..fca49e8e1774bed38d1766eab99862724bc47660 GIT binary patch literal 881 zcmbVKT}vB56g@M$W}7c#Q)8>P8sG9!x>!UkDN>ONLTn2u0evZxbx9{pcEj#Q{44zh zzW7pTkoKWJpg*d3c8yBtQ+zph&z*bkIdgaZ{`>t0z!o+#NMSjRIjqF6nuUeu7G79b zv#>58-A#d=rsEInp^73m@a#j6VHmi?Pm|O@k!aNq?V)eKKj&c>YTs+b{jUX5Z?&hR zU4gLj&`A&NtF{HqegD)IC^WU_ei#ipZtz)k`pguYzN7kWMeF2~q#1qHp+I9M#XawI z>e^|2yCi{9rP)(w%I+(#Yqz36d)-F$M8I-<7M(}2kN*k;@~ucY-;UI9;w#hgM}gxW z=*0Py;H$Vjhb+oDJVH8$ObkUl5qLAppPL#guyF6{W2fgjbh6Y z@aB+oN2h#(#n>#PWIl@=F;8|(ZZH;VR}i)O7_#N87^ib^MzdUtX%sES^ou7;yV^ej9X%v7ch-W))>@4VjoyZw3cpq Y@3hKTM2VA^ST_f`_D+yIC6Rb`4KZEX1ONa4 literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/InterpreterPattern/materials/po/Expression.class b/out/production/patterns/com/pattern/InterpreterPattern/materials/po/Expression.class new file mode 100644 index 0000000000000000000000000000000000000000..aa8d15e2f1b51612a38a9cb60e90ced9e19849b8 GIT binary patch literal 189 zcmX^0Z`VEs1_l!bPId-%b_Nbc2F}d9lGLJtqSO*b22l;4ti-ZJ{hY+Sbp7CxqRhN> zYt1M|2Cm@z(xT*4x6GVWMh1S@3ZUxZ;>`R!J&XN?5}-MG`kpZ3Qi}qh zLb-`RnasqTV*P@AeS~gC1_6X^{z+M>$t7%z42%p+KnF4~FtRW*Ff*`#SPZN{l8J#0 E0F2Z$zyJUM literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/InterpreterPattern/materials/po/OrExpression.class b/out/production/patterns/com/pattern/InterpreterPattern/materials/po/OrExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..ada1832a5d8e8ffef50538d77785ce4906aefb89 GIT binary patch literal 879 zcmbVK+e#Zz6kTU#%rrL>W7RhG65oX z;)|e&edq`HQQ|t2R4qQmm$lE@XYak%x!m6U`3qnf^BJV@HjNRKHN4Bh#u>l)s-Ylb|R-2IG<0s8AU4a*LD8~fz*cbRlF$> zRbM*krG2%Qfb}W(?gfap+OjH|3@uo7* zeC(;-qVCQii%Jf!kj^2ap@eZh+%WI%X$vVC%su~5H;s4rZ>sK390d65*35=*d%dEzMB3&bK3sPx;& z#>hAzkrByC3uzhN%RuHExxu|k{SwB)4J-q{Q6w?@G$8j~7G>;vUQYqH<_ XpjE+ZOmOmKQfHRUkAiH9%)py_w4vDw literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/InterpreterPattern/materials/po/TerminalExpression.class b/out/production/patterns/com/pattern/InterpreterPattern/materials/po/TerminalExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..fdbb3a36b68c9aa6e427f57f35d374ce6568d9eb GIT binary patch literal 1755 zcmbtUO;;OL7=CWPCP@b60b>gmTMZNqqENpsVGc~4%*2@qhwl3i zT*>jcaO0*MJvLPF^auDOT-v2u7ar?#CqcmA!s9u~d*{CQeV_O1x%cNke|!kwGS-tA z#3c=rNxXo|NrdoX0s|-|@Dg55;uTEAF`dK=UOj~}UQ=IJG+a$W$E7%C)jFrd>q=Zx z4)Yq`&~RPD4S~pp^rb*w<+j|G#inms#j4>?3nZ%MrY-%ZYY3b_emc|MTGHMuR(;pB zH>b<=h|QR`>6ZnD^0&Gz3M&jY=WGzJuVUK9Vza((xXW_gq9#>wYSLPfuBrANWyIey zJ%KBgno}<}r0*N9UA$p)X}AXEQb$#n+?dkxiVdf@Y`AsPme#c$8hM`S*vxF;gnU?` zd4MI5&YzI+nt)&esqP~It>(~s#}|lu4a@ZBn>+mMDCrbq^rppQL6n}VFKeGJ$VO0^ zhBt!&WCfB{r|H&=c~dpvOn2@RYAQOO#9IRWhZDLky)8~jLq*2|7L~zG9YZ*yVM)i^ zct=B3$1>g(2tV4r%YZso@ScYE)w-%<4YwFC06a3q*`{f27%n^WX#ewHzxwjGpLTV8 zfDe`UNXN(cM1hhm<^MMkfzyYfZ?4}qYV1?#zhE9t_ZU{2j4V2@*wzjbQ2MIt$~$T* z(yN#rqveiKw4K9rp*`rpLz$5|nGP=k-JD}t%vEvf5Wn5OJDzXU8Q5tOJl)1Io#GNN zhtI4GSywa+sy?nJlN!p%vj0KCgPd4MKr3n5Ea2=>p3ZGaw`zRWH0+u&T~ItbqzLKp zFMza*29y=JcoeO3lM5%_m6&Wa40}Uh{3MsI3({c{Yd)7>>$J6-XgrSl&cVCk5Ip8TrKr#K3BH#hWcU}n5oamSQL}^yHNfD=9>mB#LaU<>5Z*)NKBC_S z9#2vBB23v&+Z2%p@HBTrZ9hDNVeW`PO_rzv&*FR=T@>h-;Mw+fh>d)YXbV~@zA!r0 zLSh%aN;CQck|Eqvs#A;MQe=E8nu$Iv#lj^mt)*jMBb$k)waKZtGS0*U>n{+Clp=RE z@y+932)qw{bq_tM-WK}Okrqz3(BDET9l6KIVW|8k`M85wCz)#xvrIF`VLXQm$e}xpG>6>FOE(8c!MlA5zDPV-%8l_JT jkv}l3VeBy*7uPV(&)_#9G)xG=ynaWN4J*<(gy;VPM}4-$ literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/PatternApplication.class b/out/production/patterns/com/pattern/PatternApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..60e3460d73719eb2e74a12c15be1d7e5d27079c3 GIT binary patch literal 524 zcmZvZ%}N6?6opTwKVzrWR$E)$i0-NjvvDI8L6ok>AE*?>RXPqeWhOJEso-O|v7q1s z_)y}_w9rb;;@;eo+%G4|_s_={fD`O`D5BwF+k=CK4NVs<7ds5aGpVFGXUMe=`waQZ zM17&9t>>CX(XaCk-ji_}g>#X|g6v8WjsNP`WVC_}%i3FJtscuzTioS#FbV^M0~F|~?Qp=X zBZ?)eIAun;a5M#b%a%Qg#Y`-rO!LZY1Lbw9N@Sr*ifum4U_kj3&chVBcjOlc`uM806#izj$uyg_N!zqu8f)uy6K%I@Q7}=^f)I#pArk1%$vV_2dkLGVwD00e z=#K_0_y9hXcqU0Nh(8v0nVCIv&iTG?=A8ZY`^QfJTX^cgMUCS&$BKg-Y7Q*iDPk3C z=IgG5d$`Z>z(LW3J>+=AP-v-G={F2Huij&@x06qjq1;ii+&PN+GW{s}A??g}l0bw# zkt$pNK@#}`p|wn7zpGQB<-y6`)Q-ratZ;bY`5;u>B(8{71}12$I>&|!ADjP$_m1u)n~JOFW~i8x`=N*r{N4Vc3^cCb8A~MC5$C8Sf_uB0`6?fquQ4D-wazbhX+iTZ* zSVM_g*gO`PDH+XWvV2+@t@*|X?AzE~p}8>LEMbnm-AMrEu|O6>^&=E)i-%(g!uAPFPVrJqhlFRwqb;-E`PFS-fu#7yhRf%sEOC<3+nz%96 j(wOi~wODwCMT(%yz)Ol+qTDJxioHocDZ?$ov#|UJQ#|fR literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/StrategyPattern/materials/po/Context.class b/out/production/patterns/com/pattern/StrategyPattern/materials/po/Context.class new file mode 100644 index 0000000000000000000000000000000000000000..5f7e9ffba1cc71ab243a929a41a77148d64bd9f2 GIT binary patch literal 671 zcmbVJO;5r=5PjPg3Z(*m;Rk5+2AEjC;zi?y!~{ds1jBt>H&{|yQWk^%$%~1`=)oW0 zk220eCT28>ju5;t|geMvFs`~!n+**Gt!7i;a zMQf!IslLe5$j=~4)*^ICSfksjzk}8H-k`lqI61O;=wug2Ay51QY(k|eo1%F_ls8eO z!KmLRnpc#kGVS^+v~uMGx{hbU8kB09SfFl{+Rl_WQ?s#1FY4XKGI^@k6+#+Te*qd- BnLhvk literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/StrategyPattern/materials/po/OperationA.class b/out/production/patterns/com/pattern/StrategyPattern/materials/po/OperationA.class new file mode 100644 index 0000000000000000000000000000000000000000..c00b3855a6c22476be56ce83eeefda6ed962ed59 GIT binary patch literal 501 zcmbVIJxc>Y5PfsG%V~^W62A&9v`Z{pM6DD-1>qnVA(Gm?bBP=7BV0D3|H;NmuFfpHGWeU1>Wzn5*_j@=?~|p-MRX$5cYYb`Xio zhN2gZRBQ+be{S@98+PIFNAd~$s}5UUh|y;z*b-ZB?+x@?rWY7(8eFi*SpO+N4NJ_3 r`7)ywUzBYDcWe9Zg}H;dwpnU-cr52)%aHeGDF*mki)s9)+tn=3-K(;X3<>-0ep{6Ht_ zb}{?(HrQsNUt#3G`L`uvGG#?4{OYb r`8uN&_lmZFv$sEaVP3&f+bXmNJeKpN)_NQ8i+&E8?Ac{ng|ht(n-Odn literal 0 HcmV?d00001 diff --git a/out/production/patterns/com/pattern/StrategyPattern/materials/po/Strategy.class b/out/production/patterns/com/pattern/StrategyPattern/materials/po/Strategy.class new file mode 100644 index 0000000000000000000000000000000000000000..32e4493276b39daefc8873151f92ad2c6df5dfa6 GIT binary patch literal 161 zcmX|*K?=e!6h!COv{6Cu7`ibCo COFFEE_MAP = new HashMap<>(10); + + static { + COFFEE_MAP.put("Cappuccino", new Cappuccino()); + COFFEE_MAP.put("Americano", new Americano()); + } + + public Coffee createInstance(String name) { + return COFFEE_MAP.get(name); + } +} diff --git a/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Americano.java b/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Americano.java new file mode 100644 index 0000000..b1ccd6e --- /dev/null +++ b/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Americano.java @@ -0,0 +1,19 @@ +package com.pattern.FactoryPattern.SimpleFactory.materials.po; + +/** + * 美式 + * + * @author lx + * @date 2021/10/13 14:15 + **/ +public class Americano extends Coffee { + /** + * 获取名称 + * + * @return 名称 + */ + @Override + public String findName() { + return "美式"; + } +} diff --git a/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.java b/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.java new file mode 100644 index 0000000..fc1d827 --- /dev/null +++ b/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Cappuccino.java @@ -0,0 +1,19 @@ +package com.pattern.FactoryPattern.SimpleFactory.materials.po; + +/** + * 卡布奇诺 + * + * @author lx + * @date 2021/10/13 14:16 + **/ +public class Cappuccino extends Coffee { + /** + * 获取名称 + * + * @return 名称 + */ + @Override + public String findName() { + return "卡布奇诺"; + } +} diff --git a/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.java b/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.java new file mode 100644 index 0000000..1f243a8 --- /dev/null +++ b/src/com/pattern/FactoryPattern/SimpleFactory/materials/po/Coffee.java @@ -0,0 +1,17 @@ +package com.pattern.FactoryPattern.SimpleFactory.materials.po; + +/** + * 咖啡 + * 可以做成接口或者抽象类 + * + * @author lx + * @date 2021/10/13 14:13 + **/ +public abstract class Coffee { + /** + * 获取名称 + * + * @return 名称 + */ + public abstract String findName(); +} diff --git a/src/com/pattern/FactoryPattern/SimpleFactory/package-info.java b/src/com/pattern/FactoryPattern/SimpleFactory/package-info.java index 142db23..612b4d1 100644 --- a/src/com/pattern/FactoryPattern/SimpleFactory/package-info.java +++ b/src/com/pattern/FactoryPattern/SimpleFactory/package-info.java @@ -3,5 +3,15 @@ */ package com.pattern.FactoryPattern.SimpleFactory; /* +说明: + * 属于创建型模式,又叫做静态工厂方法模式,不属于23种GOF设计模式之一。 + * 是由一个工厂对象决定创建出哪一种产品类的实例。 + * 实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 +作用: + * 将“类实例化的操作”与“使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要的“产品”类,从而避免了在客户端代码中显式指定,实现了解耦。 +缺点: + * 违背“开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。 +理解性描述: + * 一个抽象产品类,可以派生出多个具体产品类。一个具体工厂类,通过往此工厂的static方法中传入不同参数,产出不同的具体产品类实例。 * */ diff --git a/src/com/pattern/FactoryPattern/package-info.java b/src/com/pattern/FactoryPattern/package-info.java new file mode 100644 index 0000000..75085a7 --- /dev/null +++ b/src/com/pattern/FactoryPattern/package-info.java @@ -0,0 +1,10 @@ +/** + * 工厂模式 + */ +package com.pattern.FactoryPattern; +/* + * 工厂模式大体分为简单工厂、工厂方法、抽象工厂等三种模式。 + * 工厂方法模式也可称为工厂模式,与抽象模式都是属于GOF23种设计模式中的一员。 + * 可以大概理解为:简单工厂进阶变成了工厂方法,然后再进阶成了抽象工厂。 + * 难度逐步增加,也越来越抽象。下面按先易到难逐个分析。 + */ diff --git a/src/com/pattern/PatternApplication.java b/src/com/pattern/PatternApplication.java index a47d812..1d12cd2 100644 --- a/src/com/pattern/PatternApplication.java +++ b/src/com/pattern/PatternApplication.java @@ -1,5 +1,6 @@ package com.pattern; +import com.pattern.FactoryPattern.SimpleFactory.materials.SimpleFactoryMain; import com.pattern.StrategyPattern.materials.StrategyMain; /** @@ -13,8 +14,12 @@ public class PatternApplication { //new InterpreterMain().main(); //策略模式 - new StrategyMain().main(); + //new StrategyMain().main(); + //工厂模式 -- 简单工厂 + new SimpleFactoryMain().main(); + //工厂模式 -- 方法工厂 + //工厂模式 -- 抽象工厂 } } -- GitLab