From 964ec0047da8717371ce25ec66f7045581bb168b Mon Sep 17 00:00:00 2001 From: sidsharma2002 Date: Fri, 13 Jan 2023 18:11:09 +0530 Subject: [PATCH] coffeeshop impl --- .../decorator/coffeeShopImpl1/Beverage.class | Bin 0 -> 835 bytes .../coffeeShopMenu/ChocoCoffee.class | Bin 0 -> 585 bytes .../coffeeShopMenu/ColdCoffee.class | Bin 0 -> 581 bytes .../coffeeShopMenu/HotCoffee.class | Bin 0 -> 576 bytes .../HotCoffeeWithAddedCream.class | Bin 0 -> 807 bytes .../HotCoffeeWithWhippedMilk.class | Bin 0 -> 830 bytes .../decorator/coffeeShopImpl2/Beverage.class | Bin 0 -> 2549 bytes .../coffeeShopImpl2/CoffeeShop.class | Bin 0 -> 1123 bytes .../coffeeShopMenu/ChocoCoffee.class | Bin 0 -> 584 bytes .../coffeeShopMenu/CostOfAddons.class | Bin 0 -> 505 bytes .../oops/decorator/storyNotes/Note1 | 13 +++ .../oops/duckFamilyImpl1/DuckOwner.class | Bin 412 -> 0 bytes .../oops/duckFamilyImpl1/RubberDuck.class | Bin 530 -> 0 bytes .../behaviours/FlyBehaviour.class | Bin 157 -> 0 bytes .../behaviours/QuackBehaviour.class | Bin 163 -> 0 bytes .../behaviours/ducks/CityDuck.class | Bin 1278 -> 0 bytes .../ducks/DefaultFlyingBehaviourImpl.class | Bin 667 -> 0 bytes .../ducks/DefaultQuackBehaviourImpl.class | Bin 670 -> 0 bytes .../behaviours/ducks/DuckOwner.class | Bin 1160 -> 0 bytes .../behaviours/ducks/RubberDuck.class | Bin 828 -> 0 bytes .../duckFamilyImpl3/CanNotFlyBehaviour.class | Bin 597 -> 0 bytes .../oops/duckFamilyImpl3/CityDuck.class | Bin 982 -> 0 bytes .../oops/duckFamilyImpl3/Duck.class | Bin 1370 -> 0 bytes .../oops/duckFamilyImpl3/DuckOwner.class | Bin 711 -> 0 bytes .../oops/duckFamilyImpl3/RubberDuck.class | Bin 936 -> 0 bytes .../duckFamilyImpl3/SqueakBehaviour.class | Bin 594 -> 0 bytes .../duckFamily}/duckFamilyImpl1/Duck.class | Bin 794 -> 834 bytes .../duckFamilyImpl1/DuckOwner.class | Bin 0 -> 452 bytes .../duckFamilyImpl1/RubberDuck.class | Bin 0 -> 590 bytes .../behaviours/FlyBehaviour.class | Bin 0 -> 177 bytes .../behaviours/QuackBehaviour.class | Bin 0 -> 183 bytes .../behaviours/ducks/CityDuck.class | Bin 0 -> 1498 bytes .../ducks/DefaultFlyingBehaviourImpl.class | Bin 0 -> 727 bytes .../ducks/DefaultQuackBehaviourImpl.class | Bin 0 -> 730 bytes .../behaviours/ducks/Duck.class | Bin 636 -> 676 bytes .../behaviours/ducks/DuckOwner.class | Bin 0 -> 1360 bytes .../behaviours/ducks/RubberDuck.class | Bin 0 -> 968 bytes .../duckFamilyImpl3/CanNotFlyBehaviour.class | Bin 0 -> 657 bytes .../duckFamily/duckFamilyImpl3/CityDuck.class | Bin 0 -> 1202 bytes .../duckFamily/duckFamilyImpl3/Duck.class | Bin 0 -> 1530 bytes .../duckFamilyImpl3/DuckOwner.class | Bin 0 -> 823 bytes .../duckFamilyImpl3/RubberDuck.class | Bin 0 -> 1156 bytes .../duckFamilyImpl3/SqueakBehaviour.class | Bin 0 -> 654 bytes .../duckFamily}/storyNotes/Note1 | 0 .../duckFamily}/storyNotes/Note2 | 0 .../duckFamily}/storyNotes/Note3 | 0 .../decorator/coffeeShopImpl1/Beverage.java | 22 +++++ .../coffeeShopMenu/ChocoCoffee.java | 10 +++ .../coffeeShopMenu/ColdCoffee.java | 11 +++ .../coffeeShopMenu/HotCoffee.java | 12 +++ .../HotCoffeeWithAddedCream.java | 14 +++ .../HotCoffeeWithWhippedMilk.java | 13 +++ .../decorator/coffeeShopImpl2/Beverage.java | 80 ++++++++++++++++++ .../decorator/coffeeShopImpl2/CoffeeShop.java | 24 ++++++ .../coffeeShopMenu/ChocoCoffee.java | 11 +++ .../coffeeShopMenu/CostOfAddons.java | 8 ++ src/oops/decorator/storyNotes/Note1 | 13 +++ 57 files changed, 231 insertions(+) create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/Beverage.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithWhippedMilk.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/Beverage.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/CoffeeShop.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/coffeeShopMenu/ChocoCoffee.class create mode 100644 out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.class create mode 100644 out/production/DesignPatterns/oops/decorator/storyNotes/Note1 delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl1/DuckOwner.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl1/RubberDuck.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/FlyBehaviour.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/QuackBehaviour.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/CityDuck.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DefaultFlyingBehaviourImpl.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DefaultQuackBehaviourImpl.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DuckOwner.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/RubberDuck.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl3/CanNotFlyBehaviour.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl3/CityDuck.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl3/Duck.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl3/DuckOwner.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl3/RubberDuck.class delete mode 100644 out/production/DesignPatterns/oops/duckFamilyImpl3/SqueakBehaviour.class rename out/production/DesignPatterns/oops/{ => strategy/duckFamily}/duckFamilyImpl1/Duck.class (63%) create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/DuckOwner.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/RubberDuck.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/FlyBehaviour.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/QuackBehaviour.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/CityDuck.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DefaultFlyingBehaviourImpl.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DefaultQuackBehaviourImpl.class rename out/production/DesignPatterns/oops/{ => strategy/duckFamily}/duckFamilyImpl2/behaviours/ducks/Duck.class (50%) create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DuckOwner.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/RubberDuck.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/CanNotFlyBehaviour.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/CityDuck.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/Duck.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/DuckOwner.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/RubberDuck.class create mode 100644 out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/SqueakBehaviour.class rename out/production/DesignPatterns/oops/{ => strategy/duckFamily}/storyNotes/Note1 (100%) rename out/production/DesignPatterns/oops/{ => strategy/duckFamily}/storyNotes/Note2 (100%) rename out/production/DesignPatterns/oops/{ => strategy/duckFamily}/storyNotes/Note3 (100%) create mode 100644 src/oops/decorator/coffeeShopImpl1/Beverage.java create mode 100644 src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.java create mode 100644 src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.java create mode 100644 src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.java create mode 100644 src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.java create mode 100644 src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithWhippedMilk.java create mode 100644 src/oops/decorator/coffeeShopImpl2/Beverage.java create mode 100644 src/oops/decorator/coffeeShopImpl2/CoffeeShop.java create mode 100644 src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/ChocoCoffee.java create mode 100644 src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.java create mode 100644 src/oops/decorator/storyNotes/Note1 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/Beverage.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/Beverage.class new file mode 100644 index 0000000000000000000000000000000000000000..3638df1a70a366c1b5d7c98c3d418a74b1c74c22 GIT binary patch literal 835 zcma)3%SyvQ6g|^dG);Y`wZ3&_t6*^DLg~VaAQW9x+^6XnM`ET-qTi*U2rm2pKT5n4 zQ~I!i1SWIuoO9-!JD*?g9{>)qWgx?_BV{jgy4;h>jiqutd2_>g`&RbO?|Z?4bHX3F za(!+f$1r#2KDtiehQ4#zx#M2UQ0(%^Q=%6O88R%i28ed7MCczea&hSFJdC-| z6&)6iMJVD1L$+4GCTvr7xrr=F7N%h`%(g_xFCOkYTwS@Hfa^P?=LXlV61q;Cx%gH@ z4E5GOWqcQbz?YFp2 zY!L8Av@(q7YifwumJiC~XF|s>^W@&Hz05FGns%X$yq;-`10{dxgAu1Jzm^N%YNc_mP$- literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.class new file mode 100644 index 0000000000000000000000000000000000000000..ec36bb7efb20072c90e9115e400b4c275a6721e8 GIT binary patch literal 585 zcmah`%T5A85Uc@Y0asoEz7X8=gYh87got{;a37Xo8MEw=*@ge|gz?}9_)*4Q zFp;PUmzt@b>Y8-*$LHHSfOC`$L>MlV8v9mX*h=$2Y0FlFfe@Xc8n;Gc_iTyZ3vXgI zhssvXxyC?@;dn*+wU`Rc9l;R4l%5Q(7^2l$mm$_veUU;GNfT>`r?8F<113Z6nNPXp za?i0^ULYKyO{9@wFs9s{h{pj#soJWw|HvAlTh2rtnKFjB=)FcE}F5A17Zw^gb^Hl0btmX A+W-In literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.class new file mode 100644 index 0000000000000000000000000000000000000000..0f01573147e2c4358d275c258a8c3d04cc1fc976 GIT binary patch literal 581 zcmah`O-}+b6r959!n%qe`27JVfrA@Q8ZjQkm=IA9818i`ShH?7-G%?<3FE=D@kbe7 z#RQ`!US2z|Gq0I>Z|~1901i;LkzzPhDvG_H@RjC?(w?vSeIYt`Dr!AM!TvXVDZ-)G zR6(!#NwHxu?Ea%Z6(gbfKrqZ6%TOjK4C!jE%V0HCPdG>;>tY784(2d#!)3_d^AYy~ z9uB-#n23SUE*6kuutz)?it9eZakpH08x*3!h=8c>3 z#7?DR^eZk_vBt1K`ZE#xT1JUfAw%i=m`SJW;dAvTs8Dp_tD2}oGNDnEjQ!T)vN;^e{;?AN72OHFJCt_@3ix9&$)f9F<09ay> A&Hw-a literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.class new file mode 100644 index 0000000000000000000000000000000000000000..fd2e1eea7faddbbceefaa19bfa7644d2ddb0ef3c GIT binary patch literal 576 zcmah`%TB^T6g^Wbg<4U0`F^lcSlGBC2IE4F5mR-6VLy}s$J7p)w)~eXj0-=&k22nh zQH&;T&dj+v_s*PiU*Dcz05q^;!C+`8HH_Sz@RjDV(yp)ieIeR+YS?-h1_x98N`#4f zq2kjIg$0vg_n+nyF%p^&1ViRXhB7{8nAxj!7|c`E6EpT0OSvMK%wo0@w&Sm;Y{%Z^SX%47@a;2SuPL}3LXc4=FK{udO yA0t~|>^;FAW3gT+jZt}|x`8#q0!%{MC$gAF4n^2lr;0P_#RfKsF>DbU*nS7q;Ex0V literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.class new file mode 100644 index 0000000000000000000000000000000000000000..82c37cda824b6277fa40d0f4b3b6d0ece24d686f GIT binary patch literal 807 zcmah{%Wl&^6g`uMIyFwyrZk1pP=`nBqzH=@iy$NjuSjlL1cfbAd*TdoJki(*{1zL6 zSnvUS6yi=oL?kGcHRHJtojG&P{qghLcL0xYVxhqBLaA})M;2k<}(O}plyyqedwH)VCrRIezu)SQ%G;SMtDuGPJ*<^Gs^jm(O z5VdNcLZ0-wmL~q4EapR*F}w;cvEh%y|8um>P#!MLUO2F`LT{-*J!AgB`4lYL?4FwF zP`s3e>A?j9^T4=;21sTaM$n%b>uI+r`b1fiKWfcTqGbnL(N}Dqwobm_+I?E@DVpJW zt9mfQt4UvM12r>ZYl> z=m+$ps@@?)ib~nAnDKq-%<(z*_n)7?0G#01K!)L5$~bkp+?R=`Wa9X;*W2AXN-&cFn!-qQ29N6z}t-Q9u#P29_9>pEOOButE@bUO42J zJ%+N~d=6vHL>cQ0IT5Ljo`2xh)KoT1Y+{RW(g~Ha{U0W^P7W1@ZIa9yYi8Y(Xx9B$ zHETe!RjV3s$ApC{!y*BGFU!1~it3*WohSsO(iim$24z79f*}D#jTgjEa z7k0cv==`ymRe?wuF5DOT@{h+2hJ|3_|JZ|-DSi_NNO_+Oy6jD@2ScGPhl$V6g=SlM zZjIh*&rk)4O*;zuGQ9wF8F}z*Qk?0{V%pw B*24e* literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/Beverage.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/Beverage.class new file mode 100644 index 0000000000000000000000000000000000000000..072f27acef3332b81b9b12bb94030592bbe29d7f GIT binary patch literal 2549 zcma)7ZBrXn6n<_piQ_rDo9v6r=rEIW_ug}!`Fk2hPt>!{`MV?AaJ(6i81#-{SQ?=YwjiYk);F;8Hf&RK|YnI-! zb<+?S-t;|oY)dze9tb2gvrV2OfwK+6mPgW}!yF%054SC|B`sT*ZGqIWsWsGaz=~-$ zrD{+>N^6*!$<~tUF%kH_p|@JHUeTM+1$q~CL${X&dgh8Xx_Z^D%Pe{@qTmv8S&ZRw z8sh>(K2MK}f(cv^NS~_B6IneJ7@ylH#!&8qz#9tE$nfe-1%1e5@fN1jxEjLsC^POg zM%xdfb@E}1>k6{y=hY1bio2RqFyO9A3I@?HaA{LF?>Uhw%(^fA1;86s1 zbS_wct~wO*+cj;q>EexrygGo~xcdqoU{N5W8+MJGme=15C0lXlBV4MEqNqUB z9M2`xosI{0hhbLTL1OpLl6T#)a(3M%cXBT{WGtA_Ms~+Mu{61+vn&TXPsVMYvE($> zyN4bedTm%cv`X;sIF?4ou_S-TlK34<(swKgpKOj0Xn5&&h`xTLctQ4V>30m5dj7!Z z874iOXFGL<8PCpow&2;~uMX@@`n~2{okEf<&+sUTE00B7#}aN~8SfI=TjZy>m*H*P zrZ0gq-tmYm6Ojb%^_Fg)Vctj1I=eh50}jHt>*XPkzf%T5D0k=nWTWE3k$5knVX zaVZ(=F5dI7%FZ{CD!s(~FGMf_PPmu0L23F)rMgMo!~0(F5_z-V2nA1`;{!5zGT%{| zqfiq8sF5zzQWq-7BOeXU2ZDVb%iS*D=_YZG52N+CN?n_d0Z8yvdx`u-qT@tfaO+7T zdCFww94kL#qV&{F>Nl);skz6q(c{OV<3jX!Gjv>x9&h=_oIsD$g%Zs?NMsq@z%UB* zSHe7OFi99c(LZRvQ!l*oZc}V8l7*?MDN61$Jn@nZmU<>y>XiVHU+Nv~ zdch&>%|vUxM%r6<5dN)W9$VJl=dna)qeLFZ5~;-#nT-lZkvuib>$B Fe*h14v%vrW literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/CoffeeShop.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/CoffeeShop.class new file mode 100644 index 0000000000000000000000000000000000000000..c17943c49b3faaed815e9a474d81c1f49b61808f GIT binary patch literal 1123 zcma)5TTc@~7(G)8+t$?rm2&Y4DzsEtL`AX41DlYLluIm|(yQE&9@Qw&tmR*yM?2t}j6v-s6BWqyd9QE>PQ;E8XNlX!K*&-DtIsiOr?NfI} z7zD2uQ<%X`12-5JE`hNrPDIFEVd55UGnlSW2U2n0mQ7tfmmeUw9Vp?7kgDIsoPk+} zOvL_ta})P)pTTHoJU*#3ksGMdc|8&-g?Z!*EHI4qCES$K7d$YL$0C(D;eJc(RkhIX z27z?bBAO3PJi-z~qAAplbZT5@4>auM>W(v5Hu1QZ9Z9Z(PfR@3j+qRk@~Wr%p=^jy zd7^38$Z+CF=d7A!-EJFOYfL8Kp-axm{KEs}&d&Ri(JwPr?*+(Ksj_T^j@a_FThsk7 zu%s2jEa=hc3jr}&k;iE?XlK#PXdYfXL*i3(oT5=5QxI2ZG`njPS812THKZw`FaMxo zF`7Sq!|2;H`XZl^DYP-&#+^d^3m&vl=*|{}SN=MEb|E?x-MJ9$gIbLM7)TI^aazw1 zlsN)3Po7_<$O~k!PS)Q-7Q5v0*O2t?4AE+>%Mfd-zAzC*(!vJfCN_~WU@>H$`Hb5x z_l9=M3&c=p3tLDt7&Gop#p8gXRBhGTe`t+REo&i%Jdu47G?gEOV-7Ehm9g9z$_erxR%D4I816bX$7jVLI*!{lt4NInA||!`&{| zGQ{7_STK@4L!-SWu%G;Y=iOj1J8G&OaVx`bGAp|{4bwmclrHTSbh0p2ss^DuMCb+- z>T@LOnf@!xIWqNJVUE%Z^&{A$nnR2#Z50WmkVGCP_NiknXK{c-LJUV#BRKv7=9!Wc literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.class b/out/production/DesignPatterns/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.class new file mode 100644 index 0000000000000000000000000000000000000000..34023ed50c7258cfd67c4f61e6cf1b7f9ed5630e GIT binary patch literal 505 zcmZvY%TB^T6o&s%pj@hyiwIsY?qFjRHzsOK42cN|$O6NDm<~{EJ54G0T*i%Y;REpe4MZ-wUuZhXhE+iH&(QXS>UJoaH3C^D4(j5JX~nZa0bZz%^8hFYuJ z{>PjHL)AnY8J%h-jCHD;$gb0oi5xNv#hx3;$E81((GwqglA+vFf_oz#xw_tL=7(w- z3Hjja6Q%8kxzImJgXj+Q(kV2wl~O}H6Ou6@`G|CFp% literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/decorator/storyNotes/Note1 b/out/production/DesignPatterns/oops/decorator/storyNotes/Note1 new file mode 100644 index 0000000..6593d6a --- /dev/null +++ b/out/production/DesignPatterns/oops/decorator/storyNotes/Note1 @@ -0,0 +1,13 @@ + +[coffeeShopImpl1] : + + Beverage is an abstract parent class which has two main methods getDescription and getCost. All the child classes + inherit from that Beverage class and set its own attributes. + + You can find some items in coffeeShopMenu like ChocoCoffee, ColdCoffee, HotCoffee and couple of hundreds. + + The problem arises where suppose the prices of the coffees increase, also each item can have different configurations + like hot coffee with whipped milk or hot coffee with added cream, so there are hundreds of possible permutations. + + One intuition would be to add all these properties in the Beverage Class itself and then just set these booleans on runtime. + This approach is represented in Impl2. \ No newline at end of file diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl1/DuckOwner.class b/out/production/DesignPatterns/oops/duckFamilyImpl1/DuckOwner.class deleted file mode 100644 index db5397142aa6339790b33dc66cc924354652ad95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmaJ-!AiqG5Pg%TiH)_@Ry>N{s)E6jhl&@aAOw4;^x|ogE^%wJDceNxvpfkN`~W{n zoQq-;(2S$fdKgFnC@ zWt@Vc7cMh9^Ugdovp>II-vByj7|1X*l$y?*aqPYHcqoE-Kb!^^&V4)@`Oyt!4dfW= zYl{+@p>Qdr&{quE_UVuzcdf?0g)B@Pc@!8*u8{t191`z=j{={e;wp~^Lmr7F{!ixg zlbA8I+_j_9eY!O0F_@buqhes2q5RBWxf5_XaR&35_Cp(0>`;}8HABr^$U-@Hk&t?z zBcF%eB6b<!CDZnBL)KH}I6k@I*$E0R(@&{R$aJ2vc diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/FlyBehaviour.class b/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/FlyBehaviour.class deleted file mode 100644 index 83e7163e1a4d6b1f70333ce1ea76d3f0a9b630f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmX^0Z`VEs1_pBmPId++Mh2by{DNZrl+xsEx5V7coJ!B!f*d3Lq|}VWvdsL_qGElw zoJuDckDY;qkwG9Uu`E$PCowNw-#;lUHMxY5fjKRw5=d%jhA}d51p~Dur@Ce4q%txH hBJ0)zX=Gz$0ICE!fPsM#Xc#L48;Hfg4kVcvH~^(kC&d5& diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/QuackBehaviour.class b/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/QuackBehaviour.class deleted file mode 100644 index 39c8e547f81ba33ecaa2f5805906aad6edbbb6ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmX^0Z`VEs1_pBmPId++Mh3n7{DNZrl+xsEx5V7coJ!B!f*d3Lq|}VWvdsL_qGJ8P z(!}I!Cm5fdfrXJlASZ*@%$Gkj!JrYc#AGoc8WR8PMv+Rl!Mc*{W0^<@ zn)m_yP{!xB+uQ(CNR!ih?!D)CpL5Q=zyJLB1>hxCG$aJ8-R^;3+X-6xb-V3)gZJ$N z?|H51?Ab?dH|Rx6er?0;4>q|;LrP#>E+*Qa5v;`RuX}@cqZ2jETtd}WV7KSvkRgPQ}$5Cw=gT-t)fycp3bPQD49r5;a8vN+O3-Q95pzCbRt#ie2=WcL<9rC(O{e$C zZhDTuY;;?;w{7=agP(JsGg33S1y%Ivc@@ zc+PZ4NJ{edWRb>W0}qiCqz~0?$U?)CfhTH4|H#MCa_X+C#@r~C)vxxEjeBfI5(&oh zMe$=__`njXmi(u=%J$Rd>1}bR@L#b`aLxJ&^YaOA9HYqLJcqZAQT`SN-=;N@qRr51 z44y%m<2#%&A_VSYfu3M7l%VkIp#a8M%Y^6`}&6k~>jQs`%f1a*cIE&T4|0qr@~ zgsO;DB&+lvmP%Z)Sj!>nRp1Wmgw_4=|@2l z8ad~p%Oe%m)L44G)6b|*HjrkR8}K{sDDL%~tJXlYLjzfcz5m#Ro3I$NN79qwF~d}4 zr^%2$^E<-A6sBz$$T8&W(i4}F+Y-SIZz;i0sQYcMnmmx&|JY22eK}${t^e0u5B=9< zRXRymjZGA=Xkg*nl#THy6t0aWEK`;rg$zseSOn=i*MaoHMi>b0R&!WoSnVY8l?X@r zl_v69SjVP;4TgmuifwFRo52`rp7N+gCFv0hO$~@u)lyjvx~jIQNi9n8_q*EHO;83M znZ67?gA`d3msXQJhb$wT*?od_ABSyPv+-sQGxTpK37AEmJkn%Rd>F$3^8xdPl}D_7 U0W1pXQjPe6m=j2mqA8T#0V~0!F8}}l diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DefaultQuackBehaviourImpl.class b/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DefaultQuackBehaviourImpl.class deleted file mode 100644 index 0be266a797d4ac108325859401a640e3aab5edf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmah{$xg#C6dZR;8v=!vvQyey;m}B2I23_cR0%0!Q4x1HHN`YbNs~%^792q0zz6VA zh?k^`kXR1(d(UIf_>KMX`SuQA4^;&ThC|ow5A;r8_L|(5*5jGow|4cmxZ^|V23`ye z^iy%m1Ixb(xY;`%gW+BUDTeubKIFQ^ovwb-z89viAj44qkNP_sLuOw((m!BG*0ygL zQYUUls7PW)gMutW-jI$s5A3$^u6f%M3V*KpbEM( zjWqp)1Vyr!<{VWzMMg2b^9uDTf;E~m@gim^*GBmq@>G#2lf!!v8IXI%LSgv@t5X7% TAkfAvsZ2?77?W%fnn2|X$)u(! diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DuckOwner.class b/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/DuckOwner.class deleted file mode 100644 index adf4889fafa1d76192be89020cf0040c1c0c256f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmb7D+fEZv6kVqmrmZ6stEi~l6x!0-fnqcUMI)q%NtGz3iSg-l7|OtOiqjcP|HYs1 zr6e}-1NwF==_2GiRTDS!>^Z|M~d~z%xA25D_q1t&_H~ADG7#*|eR`+vbT= zHtN=)JhfYa7pmIE4h?p{xt6CPCXhaor_ykw+c0+PN0#XeOuVpN+ust1=JGXx*mi5* zN+F7*jyNU+rmD7Uy$_mo%ljnjjwNuT+A^h6lb)^Q^T(KfXtxE{t5>A8Nyw(OU4fb0 zm+Fw-p6}UiV>4gVFfC9TFY31KcT~bDq>?4WbO`$9qK2xZDP)jT z@oww5gS)Ip+fsG|Bj%hNne@L7{haOzyt)##4}mm~2cRLd*^t?sj(IEyOq1DVGl7lK z+%CJ2oyvAe$3xZq=z-Hw^0JNa29jwSZ3p;*Wk=# z{?m7Xgn8afB8{xCT7$N6(SFWU${WB6l*jZRQdJT5xJ9N_vDL^=4%VooMih%+X}F9) zgg5R9PmPknzu-TQpJoV6k|Lc^Jn8Xxcl=F95sGwUtq(7f=%?dqa zc)8WZ46n1i-tXc;p^HU+k9x@RCI7BCP^}ibC=5|o7@bs*Aby4jbCj2mVk32wi2j_& gFWFngY9T~M5sxV)@RSxRnG*GDSnsD^kzH`_qP9tsQt6CseG4}>1C>xP@FYpyHwvw}h@=m+$p zqPeam_F_HUJItLkXXc#UkI&b40EgI7ATi`!x98=WzS*wwj_o|0b$U)A*RWcAXuEzt zD0#U{ztOPz6@n>{8H~Sm1^5UIJg;OdLh)2P&s6oL3gI=?{*16vyv#xo= zv8YmWP43ir-xm4gQ698xkD)MER4{+)KFJD?t%)Iwbq%Xf8B(70Yd402%v|nSIYr@- zdPU#dw5qn)T%V53-ti&FE(s0M3Dc2;UiyzjPHxg2qpUp6fuu2lX1pPBGeYtisYj|w zSfV>Y2oQrz{W`^E$~5Yx9;_fukqJ=~z9WjFrW#L3yRohApBUP*kFsgC2W5I`WD0^ diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl3/CanNotFlyBehaviour.class b/out/production/DesignPatterns/oops/duckFamilyImpl3/CanNotFlyBehaviour.class deleted file mode 100644 index f0e4ac7b7c1a0c519d5092719b657489f708c82d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmZvZ%T59@6o&tD8yH7Xyx?723C1{yE?i(-NJ2tF&;-N23>B&~Eg1?4kEIJuT=)P! zl<^E+(8ywXdU|@k)Bm5h_m@`yXV|w8V>r;dKX5xk@4m_d>5pqc-#>LLTs5?*`r}K{ z<0Gkup@js);vFAx*XOG1UbXLpXDp-`j%FZE-1c|p!2Qi(NS#Y1%>_feSZXmOD!L^yGk{RG%?@mVh!1y!FQ!)J*#I}VkhUFOz z4tB81VD%%0uLxWG31&`;Q|y_Ce31FG)WzMv?rYHA9(8 zkx@(@KEr;PlpR`ApNE*Iz4NtSK$bGn|I>UnfdQFEEamb~*q8!rDuFJhY04Cm!8c@& IsxcHk0F~;9ZU6uP diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl3/CityDuck.class b/out/production/DesignPatterns/oops/duckFamilyImpl3/CityDuck.class deleted file mode 100644 index 61dd3521848e0318a83b0a2b2fdc743032076a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 982 zcmb7CTT22_5dNmD&24kl?pfL8r7YSm4?P$aDMBDY6oQXOTkF*7mg@%ote%8|en3Ae znxl3xHY5%VGjnFXZ*Fhz&#wUXv8rK!u;9A)o^|Dy?{cClo#tuv-r2J z8yKR#3Bw1nCL4zYv6c@A+qFvejd+x(>(dK(tV@PeNn#qj$bbjLK*kU)-i~% zfg$LG!L{{*vJC@ch!9NAZv12+?EJH=4qnti3~@q?@p|hZ?Da?NO-ZZL&AhDHXMVM0 z*DpoMu?g|KTNX}1)TOe!&QRkr;sk0nK1O_J9 zv(!n$B&OJ608C?sL6tU(xh{>~r8(zl^_OVVydY6*VL_3-V3F0O0Llncn*5>+7Hd-) N9f&R^aZjq7l@F5N3Nioy diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl3/Duck.class b/out/production/DesignPatterns/oops/duckFamilyImpl3/Duck.class deleted file mode 100644 index a3d9514eadbd4d90d2515c66fa5918680969162d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1370 zcmb7@TTdE66vzL=ZDCmj1r>{}*ejrARoY@p<3nvonvh;X!~24xuI>eQ7ZW~Kn_glc z`T_c(nx0uK0$oFzO=jlIp7T4``Stt9PXIN%kPu>6we6m(9`?Iu4b9Yz!5gz@RMpoc zONcO}Pqhn8H8ks3eb+hVU5`OIG6t{siFTpeeTSja3?S^Poxd8c+8EQXGt8g&weHy% zVS6Uw!-NGfVlQ<|_x2gW#ZsFga$p~F8DY#RNI+&tHFb->?VBC$eAGGyXIO07UCn4~ zjxOY@%ZPWPyA1iD0ER^%Un!S+<0&xg6oU+I&bic1fMH2N6fuSc;!P&RP@PSjG^r1n zs|qB<8RQ;!j%>%IIFnez9SOG?w*IFv3f4v8!qi-9@fFVZnZ#Y(mvE0-JqtJ)qk;zl z89f)>qun()?-t5HM1T^g&NY) zTwV|(Tkw%Gwy`T=hanSSqo9f>3{p>E42#IcA=)2m;_B8hRg?U3&5NVPFn7(TD=Kb_ z2EEH0x|pMccp4Sq2OHGXFg>LZebib1MBSiWqCYf;v?fVXX=k)Y%ip1V^3~>Pjro@` zr0A>+6_CaPNi?m<&?=1geLQKGH@_l#Z7tJ1NFz$Ng0Sq%u`7b0i;#rlWvm3Ta?`97 zS)^}ZiL?ak)+nhxUk2pz7i2GyXPD+?s07)u?Br2)g+NN~5*z11lf{=g`_JIc6*%UTEaqZxK3ed0Iq zA_*k^0DqM6T-v}(HIun_&Ye4F?z#8(pW9ym-eSW+Nntt5`WL}z5uUenV&cJvq#y4F z?}-mD)5tm~D^$<)4;{oh?FEP3vnb3Jrrw#<tPP_4qhlMj!l+C9}A+u>qqumW|LMtkXMU7UP{;>g+CWMJa@39 zurikEOVOqF;m38j6rgR7QfJ51uTTj`RVvi~-3zwCvk$xkM_FORsAZ(T(+@M-kp^KE z91aH!lz8G$XdR+}UeQm!zCq>s{@SCJYq3vg{b2(AQz94Bm|;X7Uy)2mH||h9zTr&Y z{KPDG?GAO~#>Z`9?wa^V@-PblG2lS(& z`P5KjLtD{Wz@dRHD}AWWLKtxBK#WHo}MIl4Al?*FA{nnRmXoSAtP9uj^hQd{iJGCGYNV;7W>)2GV z!BC!2qG1c$49Xy;*e-z&#^gjs!V;ko%b*%0vn84`9=P&H{^OX8T~K$lGW2^XvZNO6 zd5UzhjBMuU73x!x)@aX;53xYLHt`E6Qbgnb6xS0NkblNfY2^iLQ-De-(8V0RGKJ*v K4cVb=3bilOtcSY* diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl1/Duck.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/Duck.class similarity index 63% rename from out/production/DesignPatterns/oops/duckFamilyImpl1/Duck.class rename to out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/Duck.class index ce08329cde494f7f7abbefe8c4fd8c4d5cd0c9a4..76b84969198f78045bf77cfcfe328d6c9d330eb4 100644 GIT binary patch delta 79 zcmbQmc8E>m)W2Q(7#JAL88p}#m>3y!^YaUe^@~f25=&CkEA>-Kle66tb2D=)CyG={ N>HFZ4-8i+C2>>Mn93KDx delta 39 tcmX@aHj7Q<)W2Q(7#JAL88p}#m>3x(^YaUeCu&r)N&A3U8~3&{0RZsB3|9aE diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/DuckOwner.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/DuckOwner.class new file mode 100644 index 0000000000000000000000000000000000000000..adf1654d16f1fc42850b0d03dd416bc4766ba314 GIT binary patch literal 452 zcmb7AO-sW-5Ph4biH)_@R=j(w3NA{)L&b|y5Q05adhxVLm$)_Al+8x*XL%Al_yhb= z;v|X|@#10Me7u?2H}m%X@(SPt+ddqI<2+v$ys$=CnLP4&8Q+aXrqWgSGFzrc{DP>- zgOB$XV`vQaW(@9mK9>O+XtmLV$IuOxmRDsKNpmft zR5J9!JQnFp7*)kzN!Q-0f?*i`U)hL$&4khnJA<3>N8!{OrIS&uN|=PE_y3?7f@xlw zSdLXCuJgU{VKoW6pv~xVfI}W_MCen*$uhFd{b#H_)pS5u(V&KP!uDqY*$s+X=%7oP Ys`-FkRmXledMk}|ZEV$rJwgZl56K~8^#A|> literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/RubberDuck.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl1/RubberDuck.class new file mode 100644 index 0000000000000000000000000000000000000000..0257fd3ff3e99aff6ed4c8f856873a56cfec587f GIT binary patch literal 590 zcma)(%TB^T6o&udR$8kdi1!Qb&_o+!3=51K4GBqOj2QMq8F921(oRiyEL~{g!Uyo7 zjHh6z3m0t8nKS?SzjHeM`u_L?(8QjG48v&($8a>aF|jZd&ZRHa1w*!R&|}D51_NOr3*AH>1%{F>eQ_OoG~JIn)K-Gz7U>%zpHW;e^7))$on?V~T4A&=YW6GV5 zRdhXUB`;!hgE(|VTPELLO1C~vpx6hkMgI-R(1~7*qDGZPnNiLkzN7dukqwH83^FWG pG^Y)e7pY=cnwgsu7@)tRRH?mTEd>}Pfeb}zPa*mYvO{VHyFY3ph<^Y8 literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/FlyBehaviour.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/FlyBehaviour.class new file mode 100644 index 0000000000000000000000000000000000000000..e6e26d2fbde33788063ca9a978272053ab71b31f GIT binary patch literal 177 zcmX^0Z`VEs1_pBmPId++Mh1uc{DNZr;*z4olGOA{{gl$=Y`4VR%p7Ewz?~F){#E0v*M`zz8&qm4OY!Vqgc7Obi?Vq+Ktw literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/QuackBehaviour.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/QuackBehaviour.class new file mode 100644 index 0000000000000000000000000000000000000000..7bc850f13adbceabf2c4de4ee7812973722ff16e GIT binary patch literal 183 zcmX^0Z`VEs1_pBmPId++Mh2(+{DNZr;*z4olGOA{{gl$=Y`4VR%p7E0a<&tU&(6TY$RLoFSeB@tlbDyT@1K;Fnq0!jz*-1W#>l{|p&7== vz!ePCnw;vEnUl)MAdG5)9!N7ABLh$^&}j?|j6eff8Q4H926iCH#J~XnD%~;{ literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/CityDuck.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/CityDuck.class new file mode 100644 index 0000000000000000000000000000000000000000..de1241fc7f531b9f6ba1b29cb202c57f70f2af57 GIT binary patch literal 1498 zcmbu9ZBNrs7>4h&w?bDoH{H-p1z*rnj7|Ka31%@cXG|6o0wM8ZHwqNG71owyKg&cy z(8M3$k22n;-DU^)rKHKz^PHV?J@@mn{{Hjh7l5~Tr647+;kqZD;rT<;w+=?eUeG&k zn|<4fFF*HBoHs_-IyBF0HyC>1DbLun{ZWhO6=VdO$vF`tC-5N&qwS0~Cdw4dCCq3m zFnh;Sj)1lw!;;y#t+aK4!s(SDtwhvWspRI~+XLHg3ZxsWy8@X_ch6FhMoGg03JUHD z>?DydXTdXC*1j1yKFe$m4yF~7BcY;<(mVvJ8s?!YxG%7M>p-*VMR69RICTwqXadEK zJ+Qt6{jN3KF}sc>Q0}-r)7dqLw)DrF8UN7s1d>%bN`5lpta8z_WD%wn5ct?g)W0}n zT{f&l@@&=upOUd>F(Ez8NzNmS7aE?UAdo$kQ<#T>RShrYj=If1b@z`cIUOC&!NWkBkpJs0*|poPhdHeAo0ym0PpB)g#II`+y_b&Qw|B$(9ewt zGKLf__&mik+H0(ss)$t~tNI_7OkA>9%Q5R+=mV<$9hFP02wc@xqk?)YJ9U~J>wg2K Tc8SJy$`UEdH&S%wpTgQ-1yX^k literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DefaultFlyingBehaviourImpl.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DefaultFlyingBehaviourImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..dd4ceff69ed79fa0b78d7511f3ab735c02769a83 GIT binary patch literal 727 zcmbVKO-}+b5Pbz?VO_sa{QiI&dTkYkvsOJAJFUQ2{myrl#~p&qokYVuH;_~S97Z)C*K ztdBF1(dj=0sx;lT8st&Hf`$1XYBUCs7M_D57O5(THAAtUh$RE}GL*h<=umL4n!_@~ za%U)WiQq`*(r67fRCRK+l4WEkcAjA0CuxW7Z1R}H6#34u0MnSEh%^~B?tp?%?BtHV#qHGGKcca<7`2YX_ literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DefaultQuackBehaviourImpl.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DefaultQuackBehaviourImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..6bb4c56a34d99f0a5bb952f323749f832bebd084 GIT binary patch literal 730 zcmbVK$xZ@65Pi)yFpi=qF1Xrw14CwC zx>6l5BrDrj45>q}BXlG&Wk5rgA>Wj)I0>D$@Gp4V77T@^XL0+A`!b40hbh&Q0mEf; zk~>90{Ubq*A$=POlS2Uu8s>ip(z*|na10c&NRRMB#ZYXI{W0$AHr9mdB&eQNo&rRfhRr+6}B@gFzcah_*{4l_5(!6`~-lTBM-fqOn?{AtS9e z{+#P>#DOi)ooS`%7bVD&78fj4{_R{Ju^JSH2KEJpFy4?5@p<6jlqE2 dBjyTAPgwZ^&?yBf%o58NNDiMMo0LtU`~im1z4HJ7 literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/Duck.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/Duck.class similarity index 50% rename from out/production/DesignPatterns/oops/duckFamilyImpl2/behaviours/ducks/Duck.class rename to out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/Duck.class index 45db6913036ab05aeb962f06311907437c3e64bd..b1450cc6db1ae18a3a2b79f96b4e003136384dc6 100644 GIT binary patch delta 82 zcmeyvvV>LR)W2Q(7#JAL8I;%=m>3!C^79Ld^@~f25=&CkEA>-Kle66tb2D=)CoWT) QXq6`A;DbxS#%0$S0iZb^O8@`> delta 42 wcmZ3&`iDj2)W2Q(7#JAL8I;%=m>3zf^79LdC!SNA=$FQ(;{)PsJa>%|04ul-s{jB1 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DuckOwner.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl2/behaviours/ducks/DuckOwner.class new file mode 100644 index 0000000000000000000000000000000000000000..f6cf3aaa5642fe3efd855df3cc1efa268dee5fae GIT binary patch literal 1360 zcmb_cT~8BH5Iwgav|U#yR#8zAP-shQSJ7w;$^)%6CRL&(O^i>sWho2WE$#=V|HVJy zOG#|v5Aa7B&uyWF#HYoFy?5r$?980GXYTJmKYsyufoBOs1j^m+k!N_mD}A%wGj@a4 zVO4f4`@HzBb7Zd@O>%MC_?TvgRfmwmA@R`b%-&2jzkVYzj>jFFBgH_Bu8Q6Z+ z?ygAXJ_fRNI4*94V19&P zLC1Y83d|D0MK^)B;V@hbLlml0%Q_w?)z zOsB`AUs5B4C9ti0RDcL2&NkNsHG{k09$z~_^2gAuaaCsUhbvt5kpuUu)KZwn3{TY0 z-|3-(ZVr(Ce8Q)pFhGXFjXvfm&QrYG$Gt)yOZ*-VkmX7KeQ|7BEA~;CWL;%+mVzYn wXP9Au`Z6?XPAFK&wB&& zP;ZJ39~qWAw7o1_zjB*RF|1I9f(Sz?ILT+k7|KBymo9I0%RlNEQV(+*mD>NYMTXdk z(KnnDLpZkSBlE9$(-d@4vs&D2@S!2&$!5gq7&b#SQ1iZ~=^v){qn@n^M6s@66)Hp47IS(T z&hmlon{B%&{Z;Gq)>@)!$PUv}DF^p_#IZ|;glR-+grqO@re#cjg60H8WiJLYg)y|k zJ5o1eWL}VcqO%Z|XiiZEh!COrG_A`NX;e)$SV4|fCL5jbj%k%=YT+5#SFABiNh%RR ux5lY{N>P6)8`zvsN|Y&cV}<=0Ej~f2$asXDpEV&+zSpBvutn7&Y<~m6-utBh literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/CanNotFlyBehaviour.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/CanNotFlyBehaviour.class new file mode 100644 index 0000000000000000000000000000000000000000..ccb1c971e70f1c0ce5da4de98520ea2404db5a01 GIT binary patch literal 657 zcma)(OHTqZ5Xb)oWMN%j;QI+T^k5S`ctDNOgoK2k3C4R_D;9TKvRg>_SbEUJgCD>T zWt_!#^x&bLnNIub%zvI=9-jd0q3j^VP&K9(^Vmkh%Fd8q_Whfh2vzXit%to}m!AmT zG`1EDkL9%(DASJ|WEiHqVjy@Rbcdg|yVAD~vJ6N6#P0C+2QB8`*$mlzrIkHoNLMy5 z7&0g3Qo2ZE+=GK0!&F0Q+3bgH8J&xEAQ=h`R^!#S90He^&HYqg5*6 zDj4Qbz^sGfkEUD0*vinu9Omhk>05@m#z+%o_*ta1ZP`eQu$sdngI6#4LTh77#B;HX zRR=2!#XlZ+Si?Gl(@PkECT!)6JJOnGH#1z;mevzG+6jOrtJidGN?RSV>J8} zS<;a9JVl%=BRjVB0QYv3_Gr((9b$rf@7DbU3n P{qhCL;{&om*%V5zfbgI= literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/CityDuck.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/CityDuck.class new file mode 100644 index 0000000000000000000000000000000000000000..40e185e37b543cb08bbb4d3c20fb6c149d5cfb88 GIT binary patch literal 1202 zcmb_b+e#xr5Iv>QG2@sq@v>@my}oF?4C;dqS$xoJWFahw63AmGw%R($Xl6#pC-^x& z1r+=MKT51lq9)=(h|*A0Rd=0J)m8QMeE$ew2TKO}2%DaF^1`a`WZl}{tCj8v z;V=}X%Xf^GJR!30ok$b?h*}tcN$6i*$!puPFoGDt_GQq{O!)H+={Gq>EyR%^#F?Wr zH^M=0ES)fEU80>+75OhL7iINW6kSP3-Eu~PbLA7ZyZzbsX-E^S)3)Xi z_PPc6e}f6J>yCC2GCiSw_z?p?3CF$6pWX}K$;eX?x_Ts3>`B5GicaP(#P z&ZL{@vxpMRBi@CQ%qrc-k=K3PxDYo23*hnPy$1SN8^9n-gRKJF+Ha@o7)q_yF`Qbf z!@g@g9AlY4gk_Ya$#NJmSQux|d@~Fam}H9q@B>o}sS7cbCQq8YcHBkX9g6y~heF)M3)3-!ZH8DjS78`^lrps=PTNUn^(r#~#28X84UjFtX>5HH{RfgBuK_QplSFWOhVOB>R35F@s z=uMpA&2TEcm|{!knhphH3|d2Y2d-yRKI2%zO$9d?US9R_bu7z=h*42dX|*N7IL2`c zcNE;F5*tROHy0gurA+)pRtU|$B}79-7I_7^o-*G%^8;b)Sj7Vh%WYD{&z8e3FkRz= zXF9=N;0bOQ$FNQhT;;yV$WF?HNDU9Mq2LiiI>JZCCLS{=4T-TFB4=CZu)&CHI(52r z(iJ=yLxEx9f=^rY2z%6YHBmBUt*Ww3*QE|ts32n0>Lc_~RfH>gHJTOrL$yxhI9UeG zjOKX$2lUV3u}K;e;bsC!TI;O?NMVXB>IkH1l+N2Bo=)dizhUOWTcdr@i8%R6!dz%4 z+5}0LAxYsm%tx^n`dLZxNL|8`X-U@gPEuQ;4QTnVm^sHHLq9J~S1{9+oz}@N6G>S( z$IAbdd7>;tQtovq1SwcCrhmL8O#cIz4`Ll8f z5=eXi9~JQ$TaZHz=Frvks=8h+UH5-)?f`tjl7pPUMv}DJemgZXRn3lnmIaqp8R_s} zbuVg#oBl3chgY#O4)Ox!3;9d>p^TgUVdFvtsleb@9qaU)z`*iKT_C@coGBLrD0wJg zP++8{V|9>44P{PbBUA!owIq;XT^en1&zMiobz5Mo_VUWMnKhC+7MNK6QG2fNI5j$M zZm-lGj0$}2n|Md39ox2xGDM!peKjL2T(oBSpWb4 literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/RubberDuck.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/RubberDuck.class new file mode 100644 index 0000000000000000000000000000000000000000..0070751c8629a9b69af3cae79b9cf82afa1fca28 GIT binary patch literal 1156 zcmb_b+e*Vg5Iv*S*ccnFckA63t(SmB6e>P=sR%{zLczyvT{W6E+9ZOX;OF>MQ1Ao% zC~>x}v=xO=BrwdG?3}Z+GxPEJ`VL?d3mQ5IDc8OCEYB|sUtT|1mqFn!BZ{`u>>d^G zos@MN%F7$^XuCn#vog-p?l(%e#c&dc z!d-)7DMyIxxtCH$C!z+rpc6V5mvRal2Ko>qn4a{Tl?ey`aQ&J_zkvb72?MOrdN;yh zdn&CoX;q?`wM+6iD01)4Mc$Ewc-AclCnw6b!u4Rpzp*{SM%b5ao`*ESxN2$-VK*$z z-z_G@9$Fek*l&yV$D3%FB&0)5V9MGPrDL~c1au@2)i6WY3e9r%5J=IOJss1C67(~k z?1IeLsw-w=zt(QWqre<^9C=fL4)(gx%~oS{!C1x3WCcCRe5ffk(V@#^NaZJ=@^t#LmpH}}8Rhc&=E-IK(VsDscclH-a YgC+ZzEXHJJRnn+Y)Fp{)Qq|0V0g0tf_W%F@ literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/SqueakBehaviour.class b/out/production/DesignPatterns/oops/strategy/duckFamily/duckFamilyImpl3/SqueakBehaviour.class new file mode 100644 index 0000000000000000000000000000000000000000..b401ef34b6945b1dd78a16dfc3e3b722d06164d9 GIT binary patch literal 654 zcma)($xg#C5Qcx3wrN6Wq3nBmD;%%{2M|RZiiCtzv8af&y2_ZJoC@X>(euUZBz|p7xyjp~w1}U@!WqyR@_WixdY@sW zwsyggJqS9|!U#rf7$`85n#z~QvDcR2xoEqRq1+4{;a-SPCGp2$R`*oIu-hE6rayhw z8FJT2Z6?Z?GBEk0>(*_grDtOrGgN61Yli7&DvApDX{dbN(xDVyy?{A};!#C-l_(Wb z`CSVOSTeB4F!|3D8_QT>F!~9_^$A>iC#P}~mI(Dk8mmR)aO9y%M40+Drj3M*DyTYI zIhuTiEGbC4Nf9T@$mZ4`Vcn%^oA&(sA;!qJKl~y}6jA$MkGE48VBTY*Jo|w80l=aZ S=wg9>89+>YLRKl8LFEm7l%ItF literal 0 HcmV?d00001 diff --git a/out/production/DesignPatterns/oops/storyNotes/Note1 b/out/production/DesignPatterns/oops/strategy/duckFamily/storyNotes/Note1 similarity index 100% rename from out/production/DesignPatterns/oops/storyNotes/Note1 rename to out/production/DesignPatterns/oops/strategy/duckFamily/storyNotes/Note1 diff --git a/out/production/DesignPatterns/oops/storyNotes/Note2 b/out/production/DesignPatterns/oops/strategy/duckFamily/storyNotes/Note2 similarity index 100% rename from out/production/DesignPatterns/oops/storyNotes/Note2 rename to out/production/DesignPatterns/oops/strategy/duckFamily/storyNotes/Note2 diff --git a/out/production/DesignPatterns/oops/storyNotes/Note3 b/out/production/DesignPatterns/oops/strategy/duckFamily/storyNotes/Note3 similarity index 100% rename from out/production/DesignPatterns/oops/storyNotes/Note3 rename to out/production/DesignPatterns/oops/strategy/duckFamily/storyNotes/Note3 diff --git a/src/oops/decorator/coffeeShopImpl1/Beverage.java b/src/oops/decorator/coffeeShopImpl1/Beverage.java new file mode 100644 index 0000000..5268b69 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl1/Beverage.java @@ -0,0 +1,22 @@ +package oops.decorator.coffeeShopImpl1; + +abstract public class Beverage { + private String description; + private Integer cost; + + public String getDescription() { + return description; + } + + public Integer getCost() { + return cost; + } + + public void setDescription(String description) { + this.description = description; + } + + public void setCost(Integer cost) { + this.cost = cost; + } +} \ No newline at end of file diff --git a/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.java b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.java new file mode 100644 index 0000000..9adb2e1 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ChocoCoffee.java @@ -0,0 +1,10 @@ +package oops.decorator.coffeeShopImpl1.coffeeShopMenu; + +import oops.decorator.coffeeShopImpl1.Beverage; + +public class ChocoCoffee extends Beverage { + public ChocoCoffee() { + super.setCost(300); + super.setDescription("Choco Coffee!!"); + } +} diff --git a/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.java b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.java new file mode 100644 index 0000000..889e88d --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/ColdCoffee.java @@ -0,0 +1,11 @@ +package oops.decorator.coffeeShopImpl1.coffeeShopMenu; + +import oops.decorator.coffeeShopImpl1.Beverage; + +public class ColdCoffee extends Beverage { + + public ColdCoffee() { + super.setCost(200); + super.setDescription("Cold Coffee!!"); + } +} diff --git a/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.java b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.java new file mode 100644 index 0000000..06f9d38 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffee.java @@ -0,0 +1,12 @@ +package oops.decorator.coffeeShopImpl1.coffeeShopMenu; + +import oops.decorator.coffeeShopImpl1.Beverage; + +public class HotCoffee extends Beverage { + + public HotCoffee() { + super.setCost(100); + super.setDescription("Hot Coffee!!"); + } + +} diff --git a/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.java b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.java new file mode 100644 index 0000000..bdabed1 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithAddedCream.java @@ -0,0 +1,14 @@ +package oops.decorator.coffeeShopImpl1.coffeeShopMenu; + +import oops.decorator.coffeeShopImpl1.Beverage; + +public class HotCoffeeWithAddedCream extends Beverage { + + public HotCoffeeWithAddedCream() { + Integer hotCoffeeCost = super.getCost(); + Integer addedCreamCost = 100; + super.setCost(hotCoffeeCost + addedCreamCost); + + super.setDescription("Hot Coffee with added cream!!"); + } +} diff --git a/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithWhippedMilk.java b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithWhippedMilk.java new file mode 100644 index 0000000..15ee719 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl1/coffeeShopMenu/HotCoffeeWithWhippedMilk.java @@ -0,0 +1,13 @@ +package oops.decorator.coffeeShopImpl1.coffeeShopMenu; + +import oops.decorator.coffeeShopImpl1.Beverage; + +public class HotCoffeeWithWhippedMilk extends HotCoffee { + public HotCoffeeWithWhippedMilk() { + Integer hotCoffeeCost = super.getCost(); + Integer costOfWhippedMilk = 50; + super.setCost(hotCoffeeCost + costOfWhippedMilk); + + super.setDescription("Hot Coffee with whipped milk!!"); + } +} diff --git a/src/oops/decorator/coffeeShopImpl2/Beverage.java b/src/oops/decorator/coffeeShopImpl2/Beverage.java new file mode 100644 index 0000000..39f4e46 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl2/Beverage.java @@ -0,0 +1,80 @@ +package oops.decorator.coffeeShopImpl2; + +import oops.decorator.coffeeShopImpl2.coffeeShopMenu.CostOfAddons; + +abstract public class Beverage { + + private String description; + private Integer cost = 0; + private Integer costOfProperties = 0; + + public void setDescription(String description) { + this.description = description; + } + + public void setCost(Integer cost) { + this.cost = cost; + } + + public String getDescription() { + return description; + } + + public Integer getTotalCost() { + return cost + costOfProperties; + } + + public Integer getCostOfProperties() { + return costOfProperties; + } + + public void notifyPropertiesChanged() { + calculateCostOfProperties(); + } + + private void calculateCostOfProperties() { + costOfProperties = 0; + + if (mocha) { + costOfProperties += CostOfAddons.mocha; + } + + if (choco) { + costOfProperties += CostOfAddons.choco; + } + + if (cream) { + costOfProperties += CostOfAddons.cream; + } + + if (whippedMilk) { + costOfProperties += CostOfAddons.whippedMilk; + } + + // ... and so on + } + + ////////// Beverage Properties ////////// + + private Boolean mocha = false; + private Boolean choco = false; + private Boolean cream = false; + private Boolean whippedMilk = false; + // and 100s of such properties.. + + public void setMocha(Boolean mocha) { + this.mocha = mocha; + } + + public void setChoco(Boolean choco) { + this.choco = choco; + } + + public void setCream(Boolean cream) { + this.cream = cream; + } + + public void setWhippedMilk(Boolean whippedMilk) { + this.whippedMilk = whippedMilk; + } +} diff --git a/src/oops/decorator/coffeeShopImpl2/CoffeeShop.java b/src/oops/decorator/coffeeShopImpl2/CoffeeShop.java new file mode 100644 index 0000000..cd60eb1 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl2/CoffeeShop.java @@ -0,0 +1,24 @@ +package oops.decorator.coffeeShopImpl2; + +import oops.decorator.coffeeShopImpl2.coffeeShopMenu.ChocoCoffee; + +public class CoffeeShop { + public static void main(String[] args) { + Beverage coffee = new ChocoCoffee(); + + System.out.println(coffee.getTotalCost()); + + // dynamically setting the addons + + coffee.setMocha(true); + coffee.setChoco(true); + coffee.notifyPropertiesChanged(); + + System.out.println(coffee.getTotalCost()); + + coffee.setCream(true); + coffee.notifyPropertiesChanged(); + + System.out.println(coffee.getTotalCost()); + } +} diff --git a/src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/ChocoCoffee.java b/src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/ChocoCoffee.java new file mode 100644 index 0000000..031b87a --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/ChocoCoffee.java @@ -0,0 +1,11 @@ +package oops.decorator.coffeeShopImpl2.coffeeShopMenu; + +import oops.decorator.coffeeShopImpl2.Beverage; + +public class ChocoCoffee extends Beverage { + + public ChocoCoffee() { + super.setCost(100); + super.setDescription("Choco Coffee!!"); + } +} diff --git a/src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.java b/src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.java new file mode 100644 index 0000000..5ba0379 --- /dev/null +++ b/src/oops/decorator/coffeeShopImpl2/coffeeShopMenu/CostOfAddons.java @@ -0,0 +1,8 @@ +package oops.decorator.coffeeShopImpl2.coffeeShopMenu; + +public interface CostOfAddons { + Integer mocha = 10; + Integer choco = 20; + Integer cream = 30; + Integer whippedMilk = 30; +} diff --git a/src/oops/decorator/storyNotes/Note1 b/src/oops/decorator/storyNotes/Note1 new file mode 100644 index 0000000..6593d6a --- /dev/null +++ b/src/oops/decorator/storyNotes/Note1 @@ -0,0 +1,13 @@ + +[coffeeShopImpl1] : + + Beverage is an abstract parent class which has two main methods getDescription and getCost. All the child classes + inherit from that Beverage class and set its own attributes. + + You can find some items in coffeeShopMenu like ChocoCoffee, ColdCoffee, HotCoffee and couple of hundreds. + + The problem arises where suppose the prices of the coffees increase, also each item can have different configurations + like hot coffee with whipped milk or hot coffee with added cream, so there are hundreds of possible permutations. + + One intuition would be to add all these properties in the Beverage Class itself and then just set these booleans on runtime. + This approach is represented in Impl2. \ No newline at end of file