188 17 39MB
Polish Pages 616 [610] Year 2008
Tytuł oryginału: Head First Object-Oriented Analysis and Design Tłumaczenie: Piotr Rajca ISBN: 978-83-246-6050-6 © Helion S.A. 2008 Authorized translation of the English edition of Head First Object-Oriented Analysis and Design © 2007 O’Reilly Media, Inc. This translation is published and sold by permission of O’Reilly Media, Inc., the owner of all rights to publish and sell the same. Polish language edition published by Helion S.A. Copyright © 2008 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 032 231 22 19, 032 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?hfooad_ebook Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/hfooad.zip Printed in Poland.
x Poleć książkę na Facebook.com x Kup w wersji papierowej x Oceń książkę
x Księgarnia internetowa x Lubię to! » Nasza społeczność
'®¬ plu aRyl-qy¬u q¥J®l|uG p }®¬ ª¬u¬²q-ql }¸yR ||7¬ ®7lR-ylª¬u-a-ÍG -y-ql®|ª-yl- ||a-u|ª-yl- l |oRp |ª-yl- p|J¥V
VJ®lÖp¥oRu¬ ®- ª|®RylR A®Ra|² y- ¬qR J|7Ra|G ¸R |®ª-q-t| yl-ylR ª-yl-tRa| ||a-u|ª-yl-G - oRJy|A®R²ylR y- ¬qR ¥JyRa|G ¸R p|ylRA®yR -t| lÖ ª¬J-ylR plÔ¸pl y- Ry Ru-
!UTORZY Brett McLaughlin oR al -®¬ ÔG p }¬ ªAlÔ¸ ª-qA®¬ ® ¬uG 7¬ ®¬oÔÉ J| ªl-J|u|²AlG l¸ ylR u|¸y- t-AlÉ -Ai¥yp}ªG ®-ou¥oÔA lÖ a-ylRu 7q¥R- l o-®®¥ y- al -®R -p¥ ¬A®yRo RJy-p¸R R | - yl| ®Rp|y-t lÖ | ¬uG ¸R u- ® A®Ra| ¸¬ÉG l®ÔA plÔ¸plG p }R |u-a-oÔ lyy¬u -É lÖ qR®¬ul |a-ul -ul -J®| lÖ ® Ra| ¥AlR®¬tG |J|7ylR o-p oRa| ¸|y- Rlai |-® Jª-o u-ql ¬y|ªlRG R-y l |77lR
"RETT
+-ylu R ®¬ªÖJ|ª-t J| ²ªl- - plÔ¸Rp ® Rll R-J l G l-t -qlp-AoR ª -©lR Jq- \lu R« Rq |uu¥ylA- l|y |-® qqRal-yAR "RqRA|u lRJ¬ oRJy-p ¥®y-t Ö -AÖ ®- ®7¬ ®¬®lRuyÔG ®-oÔt lÖ RªR-ul -qlp-AolG - p|ypR ylR uRAi-yl®uRu RªqR }ª |-® p|y RyRRu yi¬J- \lu¬ ¥ l RJy|A®R²ylR ªAlÔayÔt lÖ ª ||a-u|ª-ylR Ry |¥AR l |u-a-t ª ª|®Ryl¥ plqp¥ ²ªlR y¬Ai y-®ÖJ®l |a-ul ¬A®y¬AiG -plAi o-p -p- - "¥7lyR |-® |¸R® y-l-É J| ylRa| y- -JR 7R 6|Rlqq¬A|u Gary Pollice, p }¬ ¥ª-¸- lÖ ®- |y¥-p- A®¬ql ||7Ö ®®ÖJqlªÔ l pt} qlªÔG ®-®ª¬A®-o ª ®--ª-y|ª-y¬u ªlRp¥
G J®l-t- ª ®Ru¬²qR p|u¥ R|ª¬u |y-J ¡^ q- G --oÔA lÖ ª¬u¬²qlÉG A| AiAl-t7¬ |7lÉG plRJ¬ |lÔaylR J|o®-t|²É i|É oR®A®R ylR J|}tG ª ¤°°¡ |p¥ ª¬p|y-t p¥ Ru¥ |ª-¸y¬ p|pG ªp-A®-oÔA ª ²ªlÖ R |al -p-JRullG aJ®lR ®--¸- ¥u¬t¬ p|qRoy¬Ai |p|qRÍ |a-ul }ª }¸y¬ul -J¬p-qy¬ul lJR-ulG -plul o-pF ª}®AlR ||a-u|ª-ylR Jq- ª|lAi pqlRy }ªG ¥A®AlR lÖ -A|ª-É o-p| A®Ö²É ®R|t¥G |oRp p|J¥G oRa| o-p|²ÉG RqRa-yAo- l |-ªy|²É u- J¥¸R ®y-A®RylRG ylA ylR ®p|J®lG ¸R oR R²AlR u-yl-p-ul p|u¥ R|ª¬ulG | lqR oR R²AlR ª-yl-t¬ul u-yl-p-ul -¬ oR |\R|Ru -p ¬pl A| |®y-A®-G ¸R ®-ylu ®| -t |\R|RuG \-p ¬A®ylR ®-ou|ª-t lÖ |oRp |ª-ylRu l l-ylRu |a-u}ª
G -A¥oR ª '|AR R |q¬ RAiylA y l ¥ R lR®p- ª-® ® ¸|yÔ &lppl l Jª|u- -ul ª ²|Jp|ªRo A®Ö²Al -y¥ --Ai¥R Ra| |y- y- ªl ¬ylR ' u-JR i FªR7AªlRJ¥4a|qqlAR iÖ ylR ®-|®y- lÖ ® p¬ ¬A®y¬ul q¥7 |AiqR7y¬ul ¥ª-a-ul y- Ru- Ro plÔ¸pl
'ARY
Dave West q¥7l |pR²q-É lÖ o-p| RyJ¬ a|²É lR R ¬G ylp lyy¬ 7¬ a| ª -pl |}7 ylR |l-t '®¬A¬ ª|qÔ a| -A®Ro ®RJ -ªl-É o-p| yaqlp|\Ro|y-ql ÖG p }¬ ® -oÔ l RyRalÔ -yaqlp-ÍplRa| - |- ¥ªlRq7l- |®u-ªl-É | y-oqR®¬Ai -p ¬p-Ai ª|®Ryl- ||a-u|ª-yl- - yl| -©R ®-A®Ôt -A|ª-É ª \lulR ©- -A|7|y |y¥q lyaG aJ®lR plR¥oR oRo -uR¬p-Íplu |JJ®l-tRu | ®R7Ö |®u|ª¬ | ª|®Ryl¥ ||a-u|ª-yl- -- lÖ |tÔA®¬É ® ®-Aiª-q-ylRu ¥a7¬ l ltpl y|¸yRo |-® |-ul | |G A®¬ p¬plR oR 7-J®lRo \-A¬y¥oÔA¬ |J 7-R7-qq¥ lu -©R |®|A®Ôt -AÖ ª \lulR ©- -A|7|y |y¥q lyaG ®R® ªlRqR q- 7¬t ®- ¥Jyl|y¬ ª - l|y-q |\ ª-R \lulR |7RAylR -y|ªlÔARo A®Ö²É
+-}ªy| ª - l|y-q |\ ª-RG o-p l ®-ou|ª-t ªlRqR -y|ªlpG ª ¬u -p¸R 7¬t uRyRJ¸RRu |J¥p ¥ #G J| p }Ra| ª|ª-J®lt lJRÖ ª ¬A®Rp |AR}ª |-® ®ªlyy|²Al -alql ¬
|¸y- J| ylRa| l-É y- -JRF JªR 6l©-o-A|7|yA|u $AVE
7PROWADZENIE
3PIS TREuCI
=ZS] ^\OÄMS ]U\MYXc
|7®R ®-|oRp |ª-yR -qlp-AoR Ô ¥R "¥ ®-A®¬y- lÖ ª-yl-tR ||a-u|ª-ylR
¡
¤
|u-J®RylR ª¬u-a-Í -o lu |G A®Ra| AiAÔ
U¡
¡
'¬u-a-yl- ¥qRa-oÔ ®ul-y|u |Ai-u AlÖG oR R² J|p|y-t¬V R-® W ®ulRÍ lÖ
¡
`
y-ql®- +-A®¬y-u¬ ¥¸¬ª-É y-®¬Ai -qlp-Aol ª ®RA®¬ªl ¬u ²ªlRAlR
z
^
®Ö²É |7¬ |oRp Y Rq- ¬A®yR ||a-u|ª-ylR lA ylR |®| -oR ªlRA®ylR -plR -u| ®R¬ªylp 7lRp |ª- p- - |\-
¤¤
®Ö²É ¤ |7¬ |oRp Y Rq- ¬A®yR ||a-u|ª-ylR +-7lR® ª|oR ||a-u|ª-ylR y- ¡°kuly¥ |ª¬ Rylya
¤^
|®ªlÔ®¬ª-ylR y--ªJÖ J¥¸¬Ai |7qRu}ª -®¬ª-u lÖ &-yJRq-¬ oR Ru Ail Rp Ru
¡°
Ail Rp ¥- |®ÔJp|ª-ylR Ai-|¥
¡`¡
U
+--J¬ |oRp |ª-yl- ¬aly-qy|²É oR ®RRpq-u|ª-y-
¡z^
z
R-Ao- l R |ª-ylR |a-u|ª-ylR oR ªAlÔ¸ ®R®y-A®|yR Jq- pqlRy -
``
° |AR |oRp |ª-yl- l -y-ql®¬ |7lRp |ªRo A-q-oÔA | ª®¬ p| ª oRJy|
¤`^
`zz
|J- Rp |®| -t|²Al
^
|J- Rp 'l -u¬ ª 7lRp |ªlR
^Uz
p||ªlJ®
°¡
=ZS] ^\OÄMS ]dMdOQ¸Yac AZ\YaKNdOXSO 4WÌJ MÌZG KONCENTRUJE SIÃ NA ANALIZIE I PROJEKTOWANIU OBIEKTOWYM :YNMdK] QNc >c ]^K\K]d ]S° MdOQYÄ XK_Mdc¨ >aT WdQ \YLS -S Z\dc]¸_Q° S NLK Y ^Y KLcÄ Z\dOd Z\dcZKNOU XSO dKZKWS°^K¸ dNYLcaKXcMR SXPY\WKMTS 7cÄVS ]YLSO$ i6OZSOT dY]^KaS¨ ^\YMR° WSOT]MK XK LK\NdSOT S]^Y^XO ]Z\Kac XK Z\dcU¸KN TKUSMR daSO\d¦^ _XSUK¨ KVLY Mdc TKdNK XK ]XYaLYK\NdSO XKQY TO]^ NYL\cW ZYWc]¸OWp A TKUS dK^OW ]ZY]L WYÒO]d Y]d_UK¨ ]aT WdQ S Z\dOUYXK¨ QY ÒO >aYTO ÒcMSO dKVOÒc YN dXKTYWYÄMS KXKVSdc S Z\YTOU^YaKXSK YLSOU^YaOQY) q- p|a| oR - plÔ¸p-
¤°
'lRu¬G A| |7lR u¬²ql®
¤
R -|®y-ylRF u¬²qRylR | u¬²qRyl¥
¤¡
+u¥² ª}o u}®a J| |t¥®RÍ ª-
¤^
'-¸yR ¥ª-al
¤
RARy®RyAl RAiylA®yl
¤U
|J®lÖp|ª-yl-
¤z
3PIS TREuCI
.YL\dO dKZ\YTOU^YaKXO KZVSUKMTO ]¦ ]_ZO\
>_ dKMdcXK ]S° a]ZKXSK¸O YZ\YQ\KWYaKXSO ! ZATEM W JAKI SPOSÌB W PRAKTYCE PISZE SIà WSPANIAE OPROGRAMOWANIE DKa]dO LK\NdY ^\_NXY TO]^ YU\OÄVS¨ YN MdOQY XKVOÒc dKMd¦¨ -dc KZVSUKMTK PKU^cMdXSO \YLS ^Y MY ZYaSXXK \YLS¨ S MdOQY YN XSOT YMdOU_TOWc) + MY d ^KUSWS Z\YLVOWKWS TKU ZYa^K\dKT¦Mc ]S° UYN Z\dOMSOÒ ^Y XSO WYÒO Lc¨ NYL\O KXS a¸KÄMSaO \YdaS¦dKXSO Z\KaNK) DKdacMdKT ^\_NXY TO]^ YU\OÄVS¨ U^\O d aSOV_ Z\YLVOWa XKVOÒc \YdaSU¸K¨ a ZSO\a]dOT UYVOTXYÄMS K TONXYMdOÄXSO WSO¨ ZOaXYĨ ÒO ZYNMdK] aZ\YaKNdKXSK ZYZ\KaOU XSO ZYZ]_TOWc SXXcMR P\KQWOX^a KZVSUKMTS ,Od YLKa :Y dKUYºMdOXS_ VOU^_\c ^OQY \YdNdSK¸_ L°NdSO]d T_Ò NYU¸KNXSO aSONdSK¸ TKU ZS]K¨ NY]UYXK¸O YZ\YQ\KWYaKXSO S ZOaXSO ZYN¦ÒK¸ a USO\_XU_ ^\aK¸OQY ZYZ\KaSOXSK ]ZY]YL_ ^aY\dOXSK Z\YQ\KWa 3 a UYºM_ d\Yd_WSO]d NVKMdOQY 99+. ^Y Md^O\YVS^O\Yac ]U\^ ZYMRYNd¦Mc YN KXQSOV]USMR ]¸a$ 9LTOM^9\SOX^ON +XKVc]S] KXN .O]SQX KXKVSdK S Z\YTOU^YaKXSO YLSOU^YaO U^\c >aYTK WK^UK MRMSK¸KLc LcÄ ZYdXK¸
.IBY SKD MAM WIEDZIE· OD CZEGO NALEY ZACZ· -AM WRAENIE E ILEKRO· ZACZYNAM PRAC» NAD NOWYM PROJEKTEM KADY MA INNE ZDANIE ODNOvNIE TEGO CO NALEY ZROBI· W PIERWSZEJ KOLEJNOvCI #ZASAMI ZROBI» COv DOBRZE LECZ CZASAMI KOÂCZY SI» NA TYM E MUSZ» PRZEROBI· CA APLIKACJ» OD POCZTKU BO ZACZEM W ZYM MIEJSCU ! JA CHC» JEDYNIE PISA· vWIETNE OPROGRAMOWANIE ! ZATEM OD CZEGO POWINIENEM ZACZ· PISANIE APLIKACJI DLA 2YvKA
|Apk-yJk|qq oR ªlRA®y¬[
¡¤
|ª- RqRa-yAp- -qlp-Ao- ¬²p-V
¡¡
| ®RJR ª®¬ plu ®ulRylt7¬² ª -qlp-Aol ¬²p-
¡U
|p|y-tR ||a-u|ª-ylRV u- ªlÖARo yl¸ oRJyÔ ® ª¬ulRyl|y¬Ai o¥¸ ARAi
`°
'-yl-tR ||a-u|ª-ylR ª ®RAi | ¬Ai p|p-Ai
`¡
' lRª®Ro p|qRoy|²Al p|yARy ¥o lÖ y- \¥ypAo|y-qy|²Al
`U
"R
^¡
®¥p-u¬ |7qRu}ª y-ql®- uR |J¬ R-Ai
|¥o | R ®--J¬ |oRp |ª-yl- |7lRp |ªRa|
^^ ^
|oRp | -® lRª®¬G |oRp | -® J¥al
-p t- ª| u|¸y- ª|ª-J®-É ®ul-y¬ ª "ª|oRo -qlp-Aol
U
|JJ-ª-o iRuR ¬®-Aol |G A| lÖ ®ulRyl-
RqRa|ª-ylR
¡
-R®AlR J|p|y-tR ||a-u|ª-ylR o-p y- -®lR
2 u- y- ARq¥ ª|®RylR ª-yl-tRa| ||a-u|ª-yl-G - ylR J|J-ylR l -lRp|ªRo |7| ¬
z
q¥A®|ªR ®-a-JylRyl-
U°
3PIS TREuCI
1\YWKNdOXSO acWKQKº
.KT SW ^Y MdOQY MRM¦ +ADY LUBI ZADOWOLONYCH KLIENTÌW 4_Ò aSO]d ÒO ZSO\a]dc U\YU a ZS]KXS_ NY]UYXK¸OQY YZ\YQ\KWYaKXSK ZYVOQK XK _ZOaXSOXS_ ]S° MdOQY MRMO UVSOX^ +VO TKU ]S° NYaSONdSO¨ MdOQY UVSOX^ YMdOU_TO) -Y aS°MOT ]U¦N WSO¨ ZOaXYĨ ÒO UVSOX^ a YQVO aSO MdOQY ^KU XKZ\KaN° MRMO) A¸KÄXSO aaMdK] XK K\OX° aU\KMdKT¦ iNYL\O acWKQKXSKp A ^cW \YdNdSKVO NYaSO]d ]S° a TKUS ]ZY]L dKNYaYVS¨ UVSOX^a _ZOaXSKT¦M ]S° ÒO NY]^K\Mdc]d SW a¸KÄXSO ^Y MdOQY MRM¦ 5SONc ]UYºMdc]d VOU^_\° a]dc]^USO ]aYTO Z\YTOU^c L°NdSO]d WQ¸ YZK^\dc¨ O^cUSO^¦ i=K^c]PKUMTK QaK\KX^YaKXKp S ZY]_XSO]d ]S° Y UYVOTXc U\YU XK N\YNdO NY ^aY\dOXSK NY]UYXK¸OQY YZ\YQ\KWYaKXSKj S ^Y dK UKÒNcW \KdOW
-J®RJt A®- y- p|qRoy¬ |p-® "ª¬Ai |a-ul ¬A®y¬Ai ¥ulRoÖ y|²Al
U`
"R |a-u¥
U
lR-ªlJt|ªR ®- ||ª-ylR A|² ª ¬u ¬q¥
Uz
®¬u oR ª¬u-a-ylR
z°
"ª|®RylR ql ¬ ª¬u-a-Í
z¤
+-q-y¥oG A| u|¸R lÖ |¥É ª ¬ RulR
z
|7qRu¬ ª J®l-t-yl¥ ¬ Ru¥ Ô |7t¥alª-yR ®R® ²AlR¸pl -q Ry- ¬ªyR
zU
|y|ªyR
®RJ -ªlRylR ®¬-Jp¥ ¥¸¬Al-
°°
RJRy ®¬-JRp ¥¸¬Al-G ®¬ A®Ö²Al
°¤
|}ªy-o ª¬u-a-yl- ® ®¬-Jp-ul ¥¸¬Al-
°
"ª}o ¬ Ru u¥l J®l-t-É ª -p ¬AR
¡
|®y-oRu¬ ®A®Ö²qlªÔ ÛAlR¸pÖ
¤°
®¬7|ylp |oRp -y -
¡`
=c]^OW
$RZWICZKI DLA PSA ORAZ PILOT STANOWI ELEMENTY SYSTEMU BDz TE ZNAJDUJ SIÅ WEWNTRZ NIEGO
3PIS TREuCI
AcWKQKXSK _VOQKT¦ dWSKXYW
5YMRKW MS° TO]^OÄ NY]UYXK¸cj + ^O\Kd s dWSOº ]S° 3DZISZ E DOWIEDZIAEu SIÃ JU WSZYSTKIEGO O TYM CZEGO CHCIA KLIENT 8SO ^KU ]dcLUYj + dK^OW Z\dOZ\YaKNdS¸OÄ \YdWYac d UVSOX^OW dQ\YWKNdS¸OÄ acWKQKXSK XKZS]K¸OÄ Z\dcZKNUS _ÒcMSK XKZS]K¸OÄ S NY]^K\Mdc¸OÄ UVSOX^YaS YNVY^Ya¦ KZVSUKMT° A UYºM_ XKN]dON¸ MdK] XK WS¸OQY \OVKU]_T¦MOQY N\SXUK XSOZ\KaNKÒ) :OaXSOj KÒ NY WYWOX^_ QNc UVSOX^ _dXK ÒO ^KU XKZ\KaN° MRMO MdOQYÄ SXXOQY XSÒ ^Y MY -S ZYaSONdSK¸ ,K\NdY ZYNYLK W_ ]S° ^Y MY d\YLS¸OÄ ZYaKÒXSO TONXKU YLOMXSO XSO TO]^ T_Ò a ZO¸XS _]K^c]PKUMTYXYaKXc A \dOMdcaS]^cW ÄaSOMSO acWKQKXSK dKa]dO ]S° dWSOXSKT¦% ^Y >c W_]S]d ]YLSO d ^cWS dWSKXKWS ZY\KNdS¨ S ZYWSWY XSMR dKNLK¨ Y dKNYaYVOXSO UVSOX^K
R R² 7|i- RRu[
¡U
R R² - -t-AiRu[
¡z
RJ¬y¬ Rªylp -y-ql®¬ l |oRp |ª-yl- |7lRp |ªRa|
`
ÛAlR¸p- |¬aly-qy- ÛAlR¸p- -q Ry- ¬ªy- | | ªlR
`
®¬-Jpl ¥¸¬Al- u¥®Ô 7¬É ®|®¥ul-tR ®RJR ª®¬ plu Jq- lR7lR
`U
J - ¥ J| uR ¬F oRJRy ARy-l¥®
^°
'¬®y-ylR ÛAlR¸pl q Ry- ¬ªyRo
^¤
#®¥RtylRylR ql ¬ ª¬u-a-Í
^
|ªlRq-ylR p|J¥ oR 7-J®| ®t¬u |u¬tRu
`
- RA®y¬ R J®ªlA®Rp
-l® ª|oÔ ªt-yÔ ®--JÖ |oRp |ªÔ[
®¬7|ylp |oRp -y -
U
public void pressButton() { System.out.println(”Naciśnięto przycisk na pilocie...”); if (door.isOpen()) { door.close(); } else { door.open(); final Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { door.close(); timer.cancel(); } }, 5000); }
class Remote { press Button() }
aYTO KZVSUKMTO W_]d¦ \YLS¨ XSOMY aS°MOT XSÒ TONcXSO NdSK¸K¨ Z\KaSN¸YaY XK UYWZ_^O\dO U^\OQY _ÒcaK]d NY SMR ^aY\dOXSK UYWZ_^O\dO Y N_ÒOT WYMc S NY]UYXKVO ]UYXPSQ_\YaKXcW% >aYTO KZVSUKMTO W_]d¦ NdSK¸K¨ a ^KUSMR aK\_XUKMR a TKUSMR \dOMdcaSÄMS UVSOXMS L°N¦ SMR _ÒcaKVS A ^cW \YdNdSKVO dK]^KXYaSWc ]S° TKU dc]UK¨ ZOaXYĨ ÒO XK]dO KZVSUKMTO L°N¦ NdSK¸K¨ a \dOMdcaS]^cW UYX^OUÄMSO .YaSO]d ]S° a XSW a TKUS ]ZY]L KXKVSdK ^OU]^YaK WYÒO Z\dOU]d^K¸MS¨ ]^aY\dYXc aMdOÄXSOT Z\dcZKNOU _ÒcMSK a UVK]c S WO^YNc U^\O XK ZOaXY L°N¦ NdSK¸K¨ dQYNXSO d YMdOUSaKXSKWS UVSOX^K + USONc ]UYºMdc]d VOU^_\° ^OQY \YdNdSK¸_ ^KUÒO S >c L°NdSO]d WQ¸ ZYaSONdSO¨$ i.YUYXK¸OW ^OQY 7YTO YZ\YQ\KWYaKXSO TO]^ QY^YaO NY dK]^Y]YaKXSK a \dOMdcaS]^cW ÄaSOMSOp
+IEDY JU OKREvLIAM JAKICH KLAS I OPERACJI B»D» POTRZEBOWA· ODPOWIEDNIO ZAKTUALIZOWAAM DIAGRAM KLAS
RJRy lRG Jª- ¬G ®¬ ¬G A® R¬V
°
"ª|oR ||a-u|ª-ylR u- p|y Rp
pR²q ®¬A®¬yÖ |7qRu¥
¤
+-q-y¥o |®ªlÔ®-ylR
¡
|ªlR²É | Jª}Ai |a-ul -Ai
U°
RqRa|ª-ylR ª p|J®lR ®¬up- W -y-ql®- ®A®Ra}t|ª-
U`
| Öa- -qlp-AolG p }¬Ai RqRuRy ¬ Ô ®R |7Ô q¥´y| |ªlÔ®-yR
U
+ª-A-o ¥ª-aÖ y- ®RA®|ªylpl ª¬ Ö¥oÔAR ª ®¬-Jp¥ ¥¸¬Al-
z
J J|7Ro -y-ql®¬ J| J|7¬Ai pq-V
¤°`
l-a-u¬ pq- 7R® -oRuylA
¤°
l-a-u¬ pq- | ylR ª®¬ p|
¤
q¥A®|ªR ®-a-JylRyl-
¤^
RZECZY 7 TYM KONTEKwCIE RÎT PRZYBIERAJ ZY OB J ZNACZNIE CZÅwCIE
class DogDoor { open() }
.YQ.YY\TK`K
7 RZECZYWISTYM wWIECIE SPOTYKAMY INNE PSY KOTY GRYZONIE ORAZ CA MASÅ INNYCH PROBLEMÎW A WSZYSTKIE TE CZYNNIKI MAJ TYLKO JEDEN CEL s DOPROWADZIÁ DO AWARII NASZEGO OPROGRAMOWANIA
aYTO YZ\YQ\KWYaKXSO ZYaSXXY Lc¨ XSOMY LK\NdSOT OVK]^cMdXO S YNZY\XO +Lc ZYWM ]aYTOT KZVSUKMTS L°NdSO]d W_]SK¸ Z\dOZ\YaKNdS¨ YNZYaSONXS¦ KXKVSd° dK]^KXYaS¨ ]S° XKN XSOdL°NXcWS dWSKXKWS a Z\YTOUMSO S NYaSONdSO¨ ]S° a TKUS ]ZY]L \YdV_ÐXS¨ dKVOÒXYÄMS ZYWS°Ndc TOT OVOWOX^KWS 3 a UYºM_ a aSOVUSW PSXKVO Z\dOUYXK]d ]S° ÒO aS°U]dK ]ZTXYĨ WYÒO ZYWM a \YdaS¦dKXS_ Z\YLVOW_ ZYaS¦dKº ,\dWS SX^O\O]_T¦MY) + dK^OW Z\dOa\¨ UK\^U° Z\dc]^°Z_TOWc NY ZYZ\KaSKXSK XSOOVK]^cMdXOT KZVSUKMTS
'}Éu¬ J| -qlp-Aol ª¬®¥plª-ªA®Ro ¬²p-
¤^U
|pt-JylRo®- -y-ql®- uR |J¬ R-Ai
¤
|®¬²AlG o-plR J-t- y-u -y-ql®-
¤¤
|pt-JylRo®- -y-ql®- pq- ly ¥uRy }ª
¤^
ÛulRÉ |oRp ¥ JRA¬®o-
¤°
+ulRÍu¬ ®tR JRA¬®oR |oRp |ªR y- J|7R
¤
+- ||ª-ylR |Jª}oyRo iRuR ¬®-Aol ª -qlp-Aol ¬²p-
¤¡
laJ¬ ylR |7-ªl-o lÖ ª|ª-J®-yl- ®ul-y
¤z
q- ¬A®y- -qlp-Ao- ¬²p-
¤U¤
"R |ª-ylR J|7®R ®-|oRp |ª-yRo -qlp-Aol ¬²p-
¤U^
-p t- ª| u|¸y- ®u|J¬\lp|ª-É -qlp-AoÖ ¬²p-
¤Uz
'lRqpl p|yp¥ t- ª|²Al u|J¬\lp-Aol
¤z°
}oy- pq-- R-ql®¥oR oRJyÔ |R-AoÖ y--ªJÖ J|7®R
¤z¡
®RaqÔJ ®ul-y ª|ª-J®-y¬Ai ª ||a-u|ª-yl¥ Jq- ¬²p-
¤z
|p|y-tR ||a-u|ª-ylR | ®-®ª¬A®-o -plRG p }R oR ª¬ -A®-oÔA| J|7R
¤zU
®¬7|ylp |oRp -y -
¡°°
3PIS TREuCI
aYSW LS_\U_ S dK]^KXYaS¨ ]S° TKU WYÒXK TO Z\dOU]d^K¸MS¨ a _ZY\d¦NUYaKX¦ S NYL\dO dKZ\YTOU^YaKX¦ KZVSUKMT° A ^cW MdK]SO ZYdXK]d XSO]¸cMRKXSO aKÒXO i^\dc : NY^cMd¦MO K\MRS^OU^_\cp S NYaSO]d ]S° ÒO aYSMR UVSOX^a% W_]S]d ZYUKdK¨ SW MYÄ NdSK¸KT¦MOQY >O\Kd USONc Nc]ZYX_TO]d T_Ò ]YVSNXcW Z\dcLY\XSUSOW d XK\d°NdSKWS NY Z\YQ\KWYaKXSK YLSOU^YaOQY XKN]dON¸ MdK] LcÄ _NYaYNXS¸ ]aYSW UVSOX^YW ÒO ZS]KXO Z\dOd -SOLSO YZ\YQ\KWYaKXSO XKZ\KaN° NdSK¸K A ^cW \YdNdSKVO ZYdXK]d NaK ]ZY]YLc Z\KMc XKN SWZVOWOX^KMT¦ WYÒVSaYÄMS P_XUMTYXKVXcMR ^aY\dYXOQY YZ\YQ\KWYaKXSK NdS°US XSW >aYS UVSOXMS ZYMd_T¦ L¸YQSO MSOZ¸Y U^\O ]Z\KaS ÒO ZYaSONd¦ Y >YLSO$ i9 ^KU XSO WK MY NY ^OQY a¦^ZVSaYÄMS TO]^ a¸KÄMSa¦ Y]YL¦ NY XKZS]KXSK XK]dOT KZVSUKMTSp
?XS^ ^cZO$ =^\SXQ Z\YZO\^SO]$ 7KZ
SN$ SX^ XKWO$ =^\SXQ aOKZYX]$ AOKZYX ]O^>cZO=^\SXQ QO^>cZO$ =^\SXQ ]O^:\YZO\^c=^\SXQ 9LTOM^ QO^:\YZO\^c=^\SXQ$ 9LTOM^
QO^3N$ SX^ ]O^8KWO=^\SXQ QO^8KWO$ =^\SXQ KNNAOKZYXAOKZYX QO^AOKZYX]$ AOKZYX]
7SZYSTKIE WAwCIWOwCI KTÎRE S WSPÎLNE DLA WSZYSTKICH JEDNOSTEK ZOSTAY PRZEDSTAWIONE W KLASIE 5NIT W FORMIE ODRÅBNYCH ZMIENNYCH
3ZYMEK DOSZED DO WNIOSKU E IDENTYFIKATOR JEDNOSTKI BÅDZIE OKREwLANY W KONSTRUKTORZE KLASY 5NIT A ZATEM NIE MA POTRZEBY DEFINIOWANIA ODRÅBNEJ METODY SET)D
$LA KADEJ Z NOWYCH WAwCIWOwCI KLASY 3ZYMEK ZDEFINIOWA ODPOWIEDNI PARÅ METOD
"ª}o ®¬7|ylp y-®ÖJ®l|ª¬ |ª|ql lÖ ª¬Rtyl-
``¤
'-yl-tR ||a-u|ª-ylR ª|®¬ lÖ l R-A¬oylR
```
Ai|J®RylR ª atÔ7F JªlR | R |AoR
``^
|a-u|ª-ylR ª |-Al¥ | u|¸qlª|²Al
``
|a-u|ª-ylR ª |-Al¥ | ®¬-Jpl ¥¸¬Al-
``
ª- |JRo²Al- J| ª|®Ryl- ||a-u|ª-yl-
``U
y-ql®- u|¸qlª|²Al
`^¤
l-ylR ARy-l¥®¬ R |ª¬Ai
`^^
|a-u|ª-ylR ª |-Al¥ | R ¬
`^U
|J|7lRÍ ª- | -® ª }¬
`°
t-J®lRu¬ y-Alp y- |J|7lRÍ ª-
``
RuR ¬®¥oRu¬ ª®¬ p|
`
|-¥o R ¬ J| |oRp ¥
`°
"R ¬ 7R® -oRuylAV
`¤
#J|ª|Jylo pqlRy |ªlG ¸R ª®¬ p| lJ®lR J|7®R
`U
-p J| ÔJ ¥¸¬ª-ql²u¬ |a-u|ª-yl- ª |-Al¥ | p|y -p
`U°
"-p y--ªJÖ |a-u|ª-ylR ª |-Al¥ | p|y -p J| ¬A®¬ ®-¥\-yl-
`U
|a-u|ª-ylR JR\Ry¬ªyR
`U¤
|J®lRq ª|oÔ -qlp-AoÖ y- uylRo®R \-auRy ¬ \¥ypAo|y-qy|²Al
`z
q¥A®|ªR ®-a-JylRyl-
`z¡
®¬7|ylp |oRp -y -
`z
3PIS TREuCI
:\YMO] Z\YTOU^YaKXSK S KXKVSdc YLSOU^YaOT
=MKVKT¦M ^Y a]dc]^UY a TONXY #ZY DOTARLIuMY JU DO CELU :YÄaS°MSVSÄWc ]ZY\Y MdK]_ S ac]S¸U_ Lc ZYdXK¨ aSOVO \ÒXcMR ]ZY]YLa ZYdaKVKT¦McMR ZYZ\KaS¨ TKUYĨ ^aY\dYXOQY YZ\YQ\KWYaKXSK% ^O\Kd TONXKU XKNO]d¸K ZY\K Lc ZY¸¦Mdc¨ S ZYN]_WYaK¨ a]dc]^USO dNYLc^O SXPY\WKMTO 8K ^Y a¸KÄXSO MdOUK¸OÄ$ WKWc dKWSK\ dOL\K¨ a]dc]^UY MdOQY ]S° XK_Mdc¸OÄ S ZYUKdK¨ -S ÒO a]dc]^USO ^O SXPY\WKMTO ]^KXYaS¦ Md°ÄMS TONXOQY Z\YMO]_ U^\OQY WYÒO]d aSOVYU\Y^XSO _ÒcaK¨ Lc ^aY\dc¨ a]ZKXSK¸O YZ\YQ\KWYaKXSO
"ª|®RylR ||a-u|ª-yl- ª ¬q¥ |7lRp |ª¬u
^°°
"-yk7lRp }ª
^°`
-- uR - ª 7lRp |ªlR
^°
l - u|¸qlª|²Al
^°z
®¬-Jpl ¥¸¬Al- |J|ªl-J-oÔ ®- ||ª-yl¥G u|¸qlª|²Al |J|ªl-J-oÔ \¥ypAo|y-qy|²Al
^^
R-® ®-A®ylo |ª -®-É R -uR A®¬yy|²Al
^z
|pt-JylRo®- -y-ql®- ||7¥ RR®Ry -Aol lRAl uR -
^¤
#¸¬ª-É pq-¬ lyR A®¬ R¸ ylR ¥¸¬ª-É | | oR ¬ -ylR
^¡°
-oª-¸ylRo®R -ª¬ ®ªlÔ®-yR ® pq-Ô ¥7ª-¬
^¡
Ai|y- ªt-y¬Ai pq-
^¡z
®- y- ®RªÖ
^`
'}Éu¬ ®y|ª¥ J| R -¥ |pR²q-yl- ª¬u-a-Í
^`z
|yARy ¥o lÖ y- p|J®lRG - | Ru y- pqlRy -Ai
^^
|ª -®-ylR -ªl-G ¸R |7qRu¬ -oÔ lÖ t- ªlRo®R
^^^
-p ª¬aqÔJ- --
^°
-uRu¥ -ªJ´ ®Rª|Jylp |u¥ylp-A¬oy¬ | 7lRp |ªlR
An Rozmowa z klientem
Archit
^
|J}¸ oR®A®R ylR J|7lRat- p|ÍA-V
^z
icjujący czynnik in Zewnętrzny
KWc WYÒVSaYÄ Lista kluczo wyc
N Zewnętrzny
Po cz
Dele
Śc
Różnice
^`
|² AiÖ y¬ y- ®RAl A¬pq -A
Powtór
Herm Wzorzec
Rozmowa z klient
Lista wy
tórzen Architektur
Zasady
a t wani Za d
owego
obiekt
ości
n
Powtórze
Zasady pro
żliw u o mo
arci e w op mowani
Prog zen
Powtór
u o te ty Scenariusz
3PIS TREuCI
.YNK^OU + :YdY]^K¸YÄMS
+
.dSO]S°¨ XKTaKÒXSOT]dcMR ^OWK^a U^\cMR XSO ZY\_]dcVSÄWc -OESZ NAM WIERZY¿ ALBO I NIE ALE TO JESZCZE NIE JEST KONIEC 9a]dOW acYL\KÐ ]YLSO ÒO XKaO^ ZY Z\dOMdc^KXS_ ^cMR ]^\YX aMS¦Ò WYÒO]d TO]dMdO dXKVOШ ^OWK^c Y U^\cMR XKaO^ XSO a]ZYWXSOVSÄWc -RY¨ NdSO]S°¨ dKQKNXSOº TKUSO WKWc dKWSK\ Z\dON]^KaS¨ a ^cW NYNK^U_ XSO dK]¸_Q_TO XK aSOVO aS°MOT XSÒ U\^U¦ adWSKXU° ^Y TONXKU XSO MRMSOVSÄWc LcÄ YZ_]dMdK¸ 9LSOU^a LOd SXPY\WKMTS XK SMR ^OWK^ >O\Kd L°NdSO]d WSK¸ XSOMY aS°MOT ^OWK^a NY \YdWa ZYNMdK] PS\WYaOT SWZ\Odc d YUKdTS acQ\KXSK ^OVOaSdcTXOQY [_Sd_ 9LSOU^YaK 5K^K]^\YPKj ZYdK ^cW U^Ò YN MdK]_ NY MdK]_ XSO UYMRK ]^cW_V_T¦McMR \YdWa Y KXKVSdSO S Z\YTOU^YaKXS_) 5SONc T_Ò ]UYºMdcWc ZYdY]^KXSO TO]dMdOj XK]^°ZXc NYNK^OUj XY S YMdcaSÄMSO SXNOU] S WYÒO USVUK \OUVKWj KVO ZÐXSOT NY^\dO]d a\O]dMSO NY UYºMK U]S¦ÒUS 9LSOM_TOWc
+X^cadY\MO
R$
OU^YacM Oº]^aOW adY\Ma Z\YT +X^cadY\MO ]¦ Z\dOMSaS S¦dKXSK ]^Y]YaKXO D·/ \Yda ]^KXYaS¦ YXO Md°]^Y SO :YaSXXSÄWc Lc¨ a ]^KX ZOaXcMR Z\YLVOWa K¨ SMR OdZSOMdXO Z_¸KZUS S _XSU \YdZYdXKaK¨ ^O XSOL
" l
^¤
¤ ||7¬ ®-l¥ ®¬-Jp}ª ¥¸¬Al-
^`
¡ y ¬ª®|AR
^
` - ¬
^U
^ R ¬pl
^U°
l-a-u¬ RpªRyAol
^U
l-a-u¬ -y¥
^U¤
U "R |ª-yl- oRJy| p|ªR
^U`
z -yJ-J¬ p|J|ª-yl- l A®¬ Rqy¬ p|J
^U
° R\-p |¬®-Ao-
^UU
5VK]K$ $OG$OOR 9ZS]$ 2EPREZENTUJE FAKTYCZNE DRZWICZKI DLA PSA 3TANOWI INTERFEJS
ZAPEWNIAJCY MOLIWOwÁ KORZYSTANIA Z URZDZEÌ SPRZÅTOWYCH KONTROLUJCYCH DZIAANIE DRZWICZEK DLA PSA
9NZYaSONdSKVXYÄMS$ 8KdaK :WRÎÁ UWAGÅ BY ZAPI TU ZARÎWNO OPERACJE SAÁ KTÎRE DANA KLASA REALI ZUJE SAMODZIELNIE JAK I TE KTÎRE WYKONUJE PRZY UYCIU INNYCH KLAS
A]Z¸Z\KMYaXSU
/TWORZENIE DRZWICZEK :AMKNIÅCIE DRZWICZEK
$O WYKONANIA NIE S UYW TYCH CZYNNOwCI ANE ADNE OBIEKTY INNE
3PIS TREuCI
.YNK^OU , AS^KWc a 9LSOU^YaSO
,
=^Y]YaKXSO T°dcUK YLSOU^YaOQY 0RZYGOTUJ SIÃ NA ZAGRANICZN WYCIECZKÃ -dK] YNaSONdS¨ 9LSOU^a WSOT]MO QNdSO YLSOU^c \YLS¦ ^Y MY ZYaSXXc KZVSUKMTO ]¦ NYL\dO RO\WO^cdYaKXO T_Ò aU\^MO NYaSO]d ]S° MY ^Y dXKMdc K Z\YTOU^c YZ\YQ\KWYaKXSK ZYdaKVKT¦ XK SMR aSOVYU\Y^XO ]^Y]YaKXSO S \YdL_NYa° 7_]S]d TO]dMdO ZYdXK¨ USVUK NYNK^UYacMR dKQKNXSOº S ZY]dO\dc¨ ]aYTO _WSOT°^XYÄMS T°dcUYaO 8SO Z\dOTW_T ]S° TONXKU XSO dKTWSO -S ^Y aSOVO MdK]_ S dKXSW ]S° YLOT\dc]d T_Ò L°NdSO]d \YdWKaSK¸ a T°dcU_ YLSOU^YacW TKULcÄ WSO]dUK¸ a 9LSOU^YaSO YN aSOV_ VK^
KLASY /TO JAK PRZEDSTAWIAMY IE KLAS NA TAK ZWANYM DIAGRAM SÎB 5-, 4O WAwNIE W TAKI SPO NIE POZWALA NA PRZEDSTAWIA CJI SZCZEGÎOWYCH INFORMA APLIKACJÅ O KLASACH TWORZCYCH
4O S ZMIENNE SKADOWE KLASY +ADA MA PEWN NAZWÅ A PO DWUKROPKU OKREwLONY JEST JEJ TYP
4O S METODY KLASY +ADA METODA MA NAZ WÅ ZA NI W NAWIASACH PODAWANE S PARAMETRY METODY A NASTÅPNIE PO DWUKROPKU TYP WARTOwC I WYNIKOWEJ
# l Jl-a-u¬ pq-
^z
®lRJ®lA®RylR
^z¡
|qlu|\l®u
^z^
RuR ¨-Ao-
^z
q¥A®|ªR ®-a-JylRyl-
°°
4O JEST NAZWA KLASY :AWSZE JEST UMIESZCZANA NA SAMEJ GÎRZE DIAGRAMU I ZAP ISYWANA POGRUBION CZCIONK
+S\ZVKXO ]ZOON$ SX^ QO^=ZOON$ SX^ ]O^=ZOONSX^
4A LINIA ODDZIELA ZMIENNE SKADOWE KLASY OD JEJ METOD
LN A WYOBRAZIÁ SOBIE OGÎ $IAGRAM KLASY POZWAL U NA PIERWSZY RZUT TRUD BEZ Y POSTAÁ KLAS CO DANA KLASA ROBI OKA MONA POWIEDZIEÁ RAMIE MONA NAWET DOWE 7 RAZIE POTRZEBY W DIAG IERAJCY ZMIENNE SKA POMINÁ FRAGMENT ZAW OE W PRZEKAZANIU POM TO I JEwL LUB METODY NIEZBÅDNYCH INFORMACJI
Jak korzystać z tej książki
AZ\YaKNdOXSO .IE MOG» UWIERZY· E UMIEvCILI TAKIE RZECZY W KSICE O ANALIZIE I PROJEKTOWANIU
AMY NA PALCE 7 TEJ CZÅwCI ODPOWIAD ORZY 5-)%i#),) AUT EGO ACZ a$L E PYTANI KSICE TE WSZYSTKIE RZECZY W U OBIEKTOWYMp ANI TOW JEK PRO I O ANALIZIE
*AK KORZYSTA¿ Z TEJ KSIKI
.VK UYQY TO]^ ^K U]S¦ÒUK) R²ql u|¸R® |J|ªlRJ®lRÉ ªlRJ®ÔA| y- p-¸JR ® |yl¸®¬Ai ¬ -ÍF
E PORADZIÁ JEwLI 0OWINIENEw SOBIE TAK ZNASZ JÅZYK # A *AV ZAMIAST JÅZYKA
-dc dXK]d T°dcU 4K`K) 8SO W_]S]d Lc¨ a XSW WS]^\dOW
-dc MRMO]d ZYdXK¨ d\Yd_WSO¨ dKZKWS°^K¨ S ]^Y]YaK¨ ^OMRXSUS KXKVSdc S Z\YTOU^YaKXSK YLSOU^YaOQY a \dOMdcaS]^cMR Z\YTOU^KMR S NdS°US ^OW_ ZS]K¨ VOZ]dO YZ\YQ\KWYaKXSO)
-dc aYVS]d ]^cW_V_T¦MO \YdWYac Z\dc ZY]S¸U_ YN ]_MRcMR S X_NXcMR acU¸KNa KUKNOWSMUSMR)
| - plÔ¸p- y-J-oR lÖ Jq- lR7lR
5^Y \KMdOT XSO ZYaSXSOX ]S°QK¨ ZY ^° U]S¦ÒU°) R²ql u|¸R® |J|ªlRJ®lRÉ ªlRJ®ÔA| y- p }Rp|qªlRp ® |yl¸®¬Ai ¬ -ÍF
4O]dMdO a YQVO XSO dXK]d T°dcUK 4K`K) 8SO W_]S]d Lc¨ dKKaKX]YaKXcW Z\YQ\KWS]^¦ S XKaO^ TOÄVS XSO dXK]d T°dcUK 4K`K K XK Z\dcU¸KN - ^Y Z\KaNYZYNYLXSO S ^KU L°NdSO]d \Yd_WSK¸ XSOWKV a]dc]^USO Z\OdOX^YaKXO Z\dcU¸KNc :\KaNYZYNYLXSO ac]^K\Mdc -S ^KUÒO dXKTYWYĨ T°dcUK -
4O]^OÄ NY]UYXK¸cW Z\YTOU^KX^OW V_L Z\YQ\KWS]^¦ ZY]d_U_T¦McW U]S¦ÒUS SXPY\WKMcTXOT
,YS]d ]S° ]Z\LYaK¨ MdOQYÄ SXXOQY) AYVK¸LcÄ \KMdOT ZYNNK¨ ]S° VOMdOXS_ UKXK¸YaOW_ XSÒ ZY¸¦Mdc¨ ZK]US d U\K^¦) 8SO aSO\dc]d ÒO U]S¦ÒUK ^OMRXSMdXK WYÒO Lc¨ ZYaKÒXK TOÄVS ZYT°MSK Z\YQ\KWS]^cMdXO L°N¦ ZO\]YXSPSUYaKXO)
| - plÔ¸p- ylR oR ®R®y-A®|y- Jq- lR7lR
;.OTATKA OD DZIAU MARKETINGU TA KSIKA JEST DLA KADEGO KTO MA KARTÅ KREDYTOW=
7PROWADZENIE
7PROWADZENIE
ASOWc MY ]YLSO WcÄVS]d -plu A¥JRu | u|¸R 7¬É |ª-¸y- plÔ¸p- |a-ul ¬A®y- | A| R ª®¬ plR |7-®pl 4WÎJ MÎZG MYwLI E WAwNIE 4/ JEST ISTOTN E
®¬ ª -pl |}7 u|¸y- lÖ A®Ra|p|qªlRp y-¥A®¬É
ASOWc ^KUÒO MY ]YLSO WcÄVS >aT WdQ "ª}o u}®a -aylR y|ª|²Al +-ª®R ®¥p-G ®RaqÔJ- l ª¬A®Rp¥oR y- A|² ylR®ª¬ptRa| ' -pl |}7 ®| -t ª|®|y¬ l | |u-a- u¥ ®R ª-É +- Ru A| "ª}o u}®a |7l ® ¬ul ª®¬ plul ¥ ¬y|ª¬ulG ®ª¬A®-oy¬ulG y|u-qy¬ul ly\|u-Ao-ulG o-plR J| ylRa| J|AlR-oÔ }¸ J|pt-J- ª®RqplAi --ÍG -7¬ ylR ®R®p-J®-t¬ ª oRa| y-oª-¸ylRo®¬u ®-J-yl¥ W ®--ulÖ ¬ª-yl¥ ®RA®¬G p }R u-oÔ l | yR ®y-A®RylR "ª}o u}®a ylR -Al A®-¥ l RyRall y- ®--ulÖ ¬ª-ylR y¥Jy¬Ai ly\|u-Aol |yR ylaJ¬ ylR ®RAi|J®Ô ®R® \lq | oR ª |A®¬ªl ¬ |}7 A-tp|ªlAlR ylRª-¸yR -p | lÖ J®lRoRG ¸R "ª}o u}®a ªlRG A| oR l | yR '¬|7-´u¬ |7lRG ¸R oR R² yA|J®lRyyRo ®RAi-J®AR l y-aqR ®RJ "|7Ô -oR ¬a¬ A| lÖ ª}ªA®- ® "|7Ô J®lRoR ' J®llRo®¬Ai A®--Ai oR u-t| -ªJ||J|7yRG -7¬² -t lÖ ®RpÔpÔ Jq- ¬a¬- qR "ª}o u}®a ªAlÔ¸ |7Rª¥oR ' p|ÍA¥G ylaJ¬ ylA ylR ªl-J|u|
7SPANIALE 0OZOSTAO JESZCZE JEDYNIE GUPICH NUDNYCH I DR»TWYCH STRON
R¥|y¬ t|yÔ u|AoR ®-qRoÔ JRy-qly- y-t¬ª- \-q-ul ªt-²ylR Jq- Ra| "ª}o u}®a ªlRG ¸R
>Y W_]S Lc¨ aKÒXO 8SO dKZYWSXKT Y ^cW qR ª¬|7-´ |7lRG ¸R oR R² ª J|u¥ -q7| ª 7l7ql| RAR ®R7¬ª-® ª 7R®lRA®y¬u ulRoA¥ W ®¬ ¥qy¬u l -pluG ª p }¬u ylR u- ¬a¬}ª #A®¬® lÖ ®¬a| |ª¥oR® A lÖ J| Ra®-uly¥ q7| |®y-oR® o-pl² ¥Jy¬ |7qRu RAiylA®y¬G p }Ra| 4WÎJ MÎZG UWA E TEGO NIE WARTO |®ªlÔ®-ylR ªRJt¥a ®R\- |ªlyy| ®-oÔÉ l ¬J®lRÍG - y-oJ-qRo J®lRlÖÉ Jyl ZAPAMIÅTYWAÁ
R ¬qp| oRJRy J|7y¬ |7qRu "ª}o u}®a -- l lÖ |u}A }7¥oR ®-RªylÉG ¸R R ª |A®¬ªl ¬ |}7 ylRl | yR ly\|u-AoR ylR ®-ouÔ oRa| ARyy¬Ai ®-|7}ª +-|7}ªG p }R |ªlyy¬ ®| -É ª¬p|®¬ -yR y®--ulÖ -ylR y--ªJÖ ª-¸y¬Ai ®RA®¬ "-plAi o-p ¬a¬¬ "-plAi o-p ®-a|¸RylRG o-plR ylRlR ®R |7Ô |¸- "-plAi o-p |G ¸R o¥¸ ylaJ¬ ª ¸¬Al¥ ylR |ªlylRyR² oR´J®lÉ y- y|ª7|-J®lR ª p} plAi |JRyp-Ai | a|®-G ylR u- ¸-JyRa| ||7¥G -7¬ |ªlRJ®lRÉ u}®a|ªlF RoG u}o u}®a¥G J®lÖp¥oÖ Al 7-J®|G -qR ylR®-qR¸ylR |J Ra|G o-p y¥Jy- oR - plÔ¸pl o-p ylRªlRqplR Ô Ru|AoRG o-plAi -p ¥-qylR J|®y-oÖG | oRJy-p y--ªJÖ AiAl-t7¬u ®--ulÖ -É ª®¬ plR R ly\|u-AoR
JESTEu TUTAJ
*AK KORZYSTA¿ Z TEJ KSIKI
AcYL\KÒKWc ]YLSO ÒO Mdc^OVXSU ^OT U]S¦ÒUS TO]^ _MdXSOW + dK^OW MRMO]d ]S° MdOQYÄ XK_Mdc¨) A ZSO\a]dOT UYVOTXYÄMS ZYaSXSOXOÄ aS°M ^Y ZYdXK¨ K XK]^°ZXSO ZY]^K\K¨ ]S° ^OQY XSO dKZYWXSO¨ 8K_UK XSO ZYVOQK TONcXSO XK ia^¸YMdOXS_p NY Q¸Yac ]_MRcMR PKU^a 8KTXYa]dO LKNKXSK Z\YaKNdYXO a NdSONdSXSO Z\dc]aKTKXSK SXPY\WK MTS XO_\YLSYVYQSS S Z]cMRYVYQSS XK_MdKXSK NYaYNd¦ ÒO _MdOXSO ]S° acWKQK MdOQYÄ aS°MOT XSÒ ^cVUY Mdc^KXSK ^OU]^_ 7c aSOWc MY ZY^\KPS ZYL_NdS¨ XK]dO WdQS NY NdSK¸KXSK 9^Y XSOU^\O d Q¸aXcMR dK]KN XSXSOT]dOT U]S¦ÒUS$ AcYL\KÐ ^Y ]YLSO aSd_KVXSO aYTOT Q¸YaSO XSO dNK\dc ]S° XSM aSOVUSOQY -dc^OVXSU W_]S Lc¨ dWY^caYaKXc dKKXQKÒYaKXc dKMSOUKaSYXc S ZYNOU]M c^YaKXc \YdaS¦dcaKXSOW Z\YLVOWa acMS¦QKXSOW aXSY]Ua S dNYLcaKXSOW XYaOT aSONdc + Y]S¦QXS°MSO ^OQY a]dc]^USOQY TO]^ WYÒVSaO ZYZ\dOd ]^KaSKXSO acdaKº dKNKaKXSO ¨aSMdOº S Zc^Kº dW_]dKT¦McMR NY dK]^KXYaSOXSK Y\Kd ZYZ\dOd $OSKONAE dW_]dKXSO NY NdSK¸Kº U^\O acWKQKT¦ dKKXQKÒYaKXSK YL_ Z¸U_V WdQYacMR OPROGRAMOWANIE ZA KADYM S aSOV_ dWc]¸a RAZEM *AKOv TRUDNO MI TO
abstract
SOBIE W OGÄLE WYOBRAZI·
void roam ();
4A METODA NIE MA TREwCI s KODU ) KOÌCZY SIÅ wREDNIKIEM
:\dcU_T s Z\dcMS¦QXST XK N¸_ÒOT s _aKQ° S dKSX^O\O]YaKXSO Mdc^OVXSUK 5KÒNc dXKVKd¸ ]S° USONcÄ a ]c^_KMTS QNc LK\NdY MRMSK¸ ]S°
MdOQYÄ XK_Mdc¨ VOMd dK]cZSK¸ ZY Z\dOMdc^KXS_ ZSO\a]dOT ]^\YXc 7dQ da\KM _aKQ° XK \dOMdc XSOdacU¸O SX^O\O]_T¦MO NdSaXO Z\dcU_aKT¦MO ad\YU XSOYMdOUSaKXO 4ONXKU ZYdXKaKXSO XYaOQY ^OMRXSMdXOQY dKQKNXSOXSK aMKVO XSO W_]S Lc¨ X_NXO 4OÄVS L°NdSO YXY SX^O\O]_T¦MO >aT WdQ Z\dc]aYS TO ]YLSO dXKMdXSO ]dcLMSOT
AcdaV OWYMTO >O\Kd T_Ò aSOWc ÒO dNYVXYÄMS NY dKZKWS°^caKXSK SXPY\WKM TS ]¦ a dXKMdXOT WSO\dO dKVOÒXO YN SMR dKaK\^YÄMS OWYMTYXKVXOT DKZKWS°^_TOWc ^Y XK MdcW XKW dKVOÒc DKZKWS°^_TOWc a ]c^_KMTKMR a U^\cMR MYÄ YNMd_aKWc 9MdcaSÄMSO XSO WKWc ^_ XK WcÄVS ad\_]dK T¦McMR RS]^Y\SS Y MR¸YZM_ S TOQY Z]SO -RYNdS XKW Y OWYMTO ^KUSO TKU dK]UYMdOXSO MSOUKaYĨ \KNY]XO ZYNOU]Mc^YaKXSO iK XSOMR ^Yjp S _Md_MSO ]K^c]PKUMTS s i4O]^OW aSOVUSp s TKUSO YNMd_aKWc ZY ZYZ\KaX cW \YdaS¦dKXS_ dKQKNUS XK_MdOXS_ ]S° MdOQYÄ MY ZYa]dOMRXSO _MRYNdS dK ^\_NXO V_L dNKXS_ ]YLSO ]Z\Kac ÒO dXKWc aS°MOT ]dMdOQ¸a ^OMRXSMdXcMR XSÒ cZO$ =^\SXQ QO^,KMUAYYN$ class QO^>YZAYYN$ = Guitar { Guitar() }
} 1_S^K\TK`K
2OZDZIA
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
:VSU 3X`OX^Y\cTK`Kj IwMY INSTRUKCJE
0AMIÅTAJ E USUNÅL public class Inventory { NIECO MIEJSCA IMPORT BY ZAOSZCZÅDZIÁ private List guitars; public Inventory() { guitars = new LinkedList(); } public void addGuitar(String serialNumber, double price, String builder, String model, String type, String backWood, String topWood) { Guitar guitar = new Guitar(serialNumber, price, builder, model, type, backWood, topWood); -ETODA ADD'UITAR POB guitars.add(guitar); WSZYSTKIE INFORMACJE IERA KON } UTWORZENIA NOWEGO OBI IECZNE DO
public Guitar getGuitar(String serialNumber) { for (Iterator i = guitars.iterator(); i.hasNext(); ) { Guitar guitar = (Guitar)i.next(); if (guitar.getSerialNumber().equals(serialNumber)) { return guitar; } } return null; } public Guitar search(Guitar searchGuitar) { for (Iterator i = guitars.iterator(); i.hasNext(); ) { Guitar guitar = (Guitar)i.next(); // Ignorujemy numer seryjny bo jest unikalny // Ignorujemy cenę gdyż jest unikalna String builder = searchGuitar.getBuilder(); if ((builder != null) && (!builder.equals(“”)) && (!builder.equals(guitar.getBuilder())) continue; String model = searchGuitar.getModel(); if ((model != null) && (!model.equals(“”)) && (!model.equals(guitar.getModel())) continue; String type = searchGuitar.getType(); if ((type != null) && (!type.equals(“”)) && (!type.equals(guitar.getType())) continue; String backWood = searchGuitar.getBackWood(); if ((backWood != null) && (!backWood.equals(“”)) && (!backWood.equals(guitar.getBackWood())) continue; String topWood = searchGuitar.getTopWood(); if ((topWood != null) && (!topWood.equals(“”)) && (!topWood.equals(guitar.getTopWood())) continue; return guitar; } return null; } }
'UITAR I DODAJE GO DO EKTU TYPU MAGAZYNU
PLIKOWANAb 4A METODA JEST NIECO BARDZIEJ SKOMwCI OBIEKTU PORÎWNUJE ONA WSZYSTKIE WAwCIWO IU OAN 'UITAR PRZEKAZANEGO W JEJ WYW KTÎW TEGO TYPU OBIE H STKIC WSZY MI wCIA CIWO WAw Z DOSTÅPNYCH W MAGAZYNIE 2YwKA
3X`OX^Y\c Q_S^K\$ 6S]^ KNN1_S^K\=^\SXQ NY_LVO =^\SXQ =^\SXQ =^\SXQ =^\SXQ =^\SXQ class QO^1_S^K\=^\SXQ$ 1_S^K\ Inventory{ ]OK\MR1_S^K\$ 1_S^K\ search()
3X`OX^Y\cTK`K
JESTEu TUTAJ
0ROBLEM BRAKUJCEJ GITARY
AU\^MO TONXKU YUKdK¸Y ]S° ÒO O]^O\TK`K
0RZYKRO MI 2YvKU ALE WYGLDA NA TO E PÄJD» DO INNEGO SKLEPU
ZIE DO /TO CO SIÅ DZIEJE GDY %WA WEJD LEzÁ SKLEPU 2YwKA A TEN SPRÎBUJE ODNA GITARÅ SPENIAJC JEJ OCZEKIWANIA
2OZDZIA
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
!LE PRZECIE JA WIEM E vWIETN GITAR» 3TRATOCAS MAM TOR FIR &ENDER *EST WAvNIE TUT MY AJ
inventory.addGuitar(”V95693”, 1499.95, ”Fender”, ”Stratocastor”, ”elektryczna”, ”olcha”, ”olcha”);
/TO FRAGMENT KODU INICJALIZUJCEGO ZAWARTOwÁ MAGAZYNU 2YwKA 7YGLDA NA TO E 2YSIEK FAKTYCZNIE MA GITARÅ KTÎRA SPENIA OCZEKIWANIA %WY
DKY]^\d Y¸aOU
7YDAJE SIÅ E SPECYFIKACJA GITARY DOKADNIE ODPOWIADA OCZEKIWANIOM %WYb :ATEM CO SIÅ STAO
A TKUS ]ZY]L dWSOXS¸LcÄ Z\YTOU^ KZVSUKMTS aYTO YZ\YQ\KWYaKXSO dK NY]UYXK¸O TOÄVS L°NdSO YXY \YLS¨ ^Y MdOQY YN XSOQY YMdOU_T¦
"ª|®RylR ||a-u|ª-yl-G p }R J®l-t- ªR ªt-²Alª¬ |}7G oR A®¬u² ª-yl-t¬u | lÖ oRJy-p -ylR ª ¬ ¥-Ao-AiG plRJ¬ -plR ||a-u|ª-ylR ®R7- 7ÖJ®lR |®7¥J|ª-É q¥7 ®- ||ª-É oRa| A®Ö²É ª lyy¬u |oRpAlR -l-ylR p|J¥G p }¬ J®l-t- ®a|JylR ® |A®Rplª-yl-ul pqlRy -G | ®- u-t| }ªylR ª-¸yR oR |G 7¬ ®R®RJt |y }7Ö A®-¥
:YdK ^cW NY]UYXK¸O YZ\YQ\KWYaKXSO ZYaSXXY Lc¨ NYL\dO dKZ\YTOU^YaKXO ZYZ\KaXSO XKZS]KXO Y\Kd W_]S dKZOaXSK¨ ¸K^aYĨ _^\dcWKXSK aSOVYU\Y^XOQY ]^Y]YaKXSK S \Yd]dO\dKXSK 8SOMR >aT UYN L°NdSO ^KU SX^OVSQOX^Xc TKU >c ]KW DK\aXY >c TKU S >aYS a]Z¸Z\KMYaXSMc ]KWS _dXKMSO ÒO YZ\YQ\KWYaKXSO TO]^ NY]UYXK¸O TOÄVS TOQY _^\dcWKXSO \Yd]dO\dKXSO S aSOVYU\Y^XO ]^Y]YaKXSO XSO L°N¦ Z\dc]ZK\dK¨ aS°U]dcMR Z\YLVOWa
2OZDZIA
/ RANY JEvLI MÄJ KOD NAPRAWD» MÄGBY MIE· TE WSZYSTKIE CECHY TO PISANE PRZEZE MNIE APLIKACJE BYYBY WSPANIAE 0OTRAFI» NAWET ZAPISA· TE WSZYSTKIE WYMAGANIA W KILKU PROSTYCH PUNKTACH KTÄRE MONA BY STOSOWA· WE WSZYSTKICH PROJEKTACH
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
A]ZKXSK¸O YZ\YQ\KWYaKXSO a ^\dOMR Z\Y]^cMR U\YUKMR ?ZOaXST ]S° ÒO YZ\YQ\KWYaKXSO \YLS ^Y MdOQY YMdOU_TO UVSOX^
/BECNIE MOE #I SIÅ WYDAWAÁ E TO WCALE NIE JEST TAKIE ATWE *EDNAK POKAEMY E ANALIZA I PROJEKTOWANIE OBIEKTOWE WRAZ Z KILKOMA PROSTYMI ZASADAMI MOG NA ZAWSZE ZMIENIÁ POSTAÁ TWORZONEGO PRZEZ #IEBIE OPROGRAMOWANIA
E JEMY UWAGÅ NA KLIENCI 7 TYM KROKU KONCENTRU i#) POWINIENEw ZAPEWNIÁ ./ 7 0)%273:%* +/,%* IÁ TO CZEGO KLIENT OD NIEJ E APLIKACJA BÅDZIE ROB PRAC DU ROLÅ ODGRYWA PIE OCZEKUJE .A TYM ETA I PRZEPROWADZENIE PRZYGOTOWANIE WYMAGAÌ LIZY ANA ODPOWIEDNIEJ
DK]^Y]_T Z\Y]^O dK]KNc Z\YTOU^YaKXSK YLSOU^YaOQY Lc ZYZ\KaS¨ OVK]^cMdXYĨ YZ\YQ\KWYaKXSK +IEDY OPROGRAMOWANIE MOESZ ODSZUKAÁ W NIMBÅDZIE JU DZIAAÁ POWTARZAJCE SIÅ FRAGM I USUNÁ UPEWNIÁ SIÅ E ZASTOS ENTY KODU ORAZ PROJEKTOWANIA OBIEKTOW OWAEw DOBRE TECHNIKI EGO
#ZY UZYSKAEw DOBR APLIKACJÅ OBIEKTOW KTÎRA ROBI TO CO POWINNA .ADSZED CZAS BY ZASTOSOWAÁ WZORCE I ZASADY DZIÅKI KTÎRYM UPEWNISZ SIÅ E 4WOJE OPROGRAMOWANIE JEST ODPOWIEDNIO PRZYGOTOWANE DO WIELOLETNIEGO UYTKOWANIA
=^K\KT ]S° Lc Z\YTOU^ YZ\YQ\KWYaKXSK dKZOaXSK¸ ¸K^aYĨ TOQY _^\dcWKXSK S ZYdaKVK¸ XK TOQY aSOVYU\Y^XO ]^Y]YaKXSO
JESTEu TUTAJ
3TOSOWANIE PRZEDSTAWIONYCH WCZEuNIEJ KROKÌW
:KWS°^K]d cZOTK`K
public enum Builder { FENDER, MARTIN, GIBSON, COLLINGS, OLSON, RYAN, PRS, ANY; public String toString() { switch(this) {
}
case FENDER: case M case G case C
Y SIÅ $O TYCH WARTOwCI MOEMZAPISU ODWOYWAÁ PRZY UYCIU R 7OOD3)4+! LUB "UILDEU UNIKNÁ ')"3/. A DZIÅKI TEM A ANI STOSOWANIA PORÎWNYW KÎW ZNA HÎW CUC AÌ *EDN ZE WSPANIA WYLICZENIOWYCH JESYCH ZALET TYPÎW OGRANICZENIA POTE T MOLIWOwÁ PRZEKAZYWANYCH NCJALNYCH WARTOwCI ZATEM JU NIGDY W WYWOANIACH METODb PRZEJMOWAÁ SIÅ NIE BÅDZIEMY MUSIELI PR TYPOGRAFICZNYMI OSTYMI BÅDAMI LUB Z WIELKOwCI LITER PROBLEMAMI
enum Builder{ toString() }
,_SVNO\TK`K
return „Fender”;
public enum Wood { INDIAN ROSEWOOD, BRAZILIAN ROSEWOOD, MAHOGANY, MAPLE, HEBAN, CEDAR, OAK, ALDER, SITKA; public String toString() { switch(this) { case INDIAN ROSEWOOD:
return ”palisander indyjski”;
case BRAZILIAN ROSEWOOD: return ”palisander brazylijski”; case MAHOGANY:
return ”mahoń”;
case MAPLE:
return ”klon”;
case EBONY:
return ”heban”;
enum Wood{ toString() }
AYYNTK`K
Nie ma
niemądrych pytań
:$
8SQNc aMdOÄXSOT XSO ]ZY^UK¸OW ]S° a T°dcU_ 4K`K dO ]¸YaOW UV_MdYacW OX_W -Y ^Y ^KUSOQY)
9$
:YdaKVK YXY XK NOPSXSYaKXSO ^cZa acVSMdOXSYacMR >OX ^cZ NKXcMR TO]^ NY]^°ZXc ^KUÒO a T°dcU_ - - Y\Kd a 4K`SO a aO\]TS S UYVOTXcMR -Y aS°MOT ZYTKaS ]S° ^KUÒO a aO\]TS T°dcUK :O\V
2OZDZIA
>cZc acVSMdOXSYaO ZYdaKVKT¦ XK ZYNKXSO XKdac ^cZ_ XK Z\dcU¸KN Wood Y\Kd VS]^c aK\^YÄMS TKUSO WYQ¦ Lc¨ ]^Y]YaKXO a \KWKMR ^OQY ^cZ_ XK Z\dcU¸KN$ SITKA ALDER L¦NÐ CEDAR + dK^OW YNaY¸KXSO NY UYXU\O^XOT aK\^YÄMS WK ZY]^K¨$ Wood.SITKA
:$
+ NVKMdOQY ^cZc acVSMdOXSYaO Z\dcNKNd¦ ]S° XKW a KZVSUKMTS O]^O\TK`K public List search(Guitar searchGuitar) { for (Iterator i = guitars.iterator(); i.hasNext(); ) { Guitar guitar = (Guitar)i.next(); // Ignorujemy numer seryjny, bo jest unikalny // Ignorujemy cenę, gdyż jest unikalna if (searchGuitar.getBuilder() != guitar.getBuilder()) continue; String model = searchGuitar.getModel().toLowerCase(); if ((model != null) && (!model.equals(“”)) && (!model.equals(guitar.getModel().toLowerCase()))) continue; if (searchGuitar.getType() != guitar.getType()) continue; if (searchGuitar.getBackWood() != guitar.getBackWood()) continue; if (searchGuitar.getTopWood() != guitar.getTopWood()) continue; return guitar; } return null;
7YGLDA NA TO E NIC SIÅ NIE ZMIENIO JEDNAK DZIÅKI ZASTOSOWANIU TYPÎW WYLICZENIOWYCH NIE MUSIMY JU MARTWIÁ SIÅ E METODA ZWRÎCI NIEWAwCIWE WYNIKI ZE WZGLÅDU NA RÎNICE W WIELKOwCI LITER UYTYCH W OBU AÌCUCHACH }
*EDYN WAwCIWOwCI W JAKIEJ MUSIMY ZADBAÁ O WIELKOwÁ LITER JEST NAZWA MODELU GITARY s ONA WCI JEST ZWYCZAJNYM AÌCUCHEM ZNAKÎW
class Inventory { search() }
3X`OX^Y\cTK`K
9$
,K\NdY N_Ò¦ dKVO^¦ ^cZa acVSMdOXSYacMR TO]^ ^Y SÒ dKLOdZSOMdKT¦ YXO WO^YNc a U^\cMR ]¦ _ÒcaKXO Z\dON Z\dOUKdKXSOW aK\^YÄMS XSOdNOPSXSYaKXcMR a NKXcW ^cZSO + dK^OW TOÄVS ^cVUY aK\^YĨ ^cZ_ acVSMdOXSYaOQY dY]^KXSO L¸°NXSO dKZS]KXK UYWZSVK^Y\ acQOXO\_TO L¸¦N 4KU aSNK¨ ^cZc acVSMdOXSYaO ]¦ NY]UYXK¸cW ]ZY]YLOW XSO ^cVUY XK dKZOaXSOXSO LOdZSOMdOº]^aK ^cZa VOMd ^KUÒO LOdZSOMdOº]^aK aK\^YÄMS XSO ]ZY]L _Òc¨ XSOZYZ\KaXcMR NKXcMR TOÄVS WYÒXK TO acL\K¨ ^cVUY d YQ\KXSMdYXOQY dKU\O]_ V_L dLSY\_ ÄMSÄVO YU\OÄVYXcMR aK\^YÄMS
:$ ?ÒcaKW ]^K\]dOT aO\]TS T°dcUK 4K`K -dc ^Y YdXKMdK ÒO WKW UYVOTXc Z\YLVOW)
9$
8SO XSO L°NdSO]d WSO¨ ÒKNXcMR Z\YLVOWa DKT\dcT NY ZVSUa d ]O\aO\K 0>: AcNKaXSM^aK 2OVSYX dKWSOÄMSVSÄWc ^KW ]ZOMTKVX¦ aO\]T° KZVSUKMTS cZO LKMUAYYN$ AYYN ^YZAYYN$ AYYN QO^=O\SKV8_WLO\$ =^\SXQ QO^:\SMO$ NY_LVO ]O^:\SMOPVYK^ QO^,_SVNO\$ ,_SVNO\ QO^7YNOV$ =^\SXQ QO^>cZO$ >cZO QO^,KMUAYYN$ AYYN QO^>YZAYYN$ AYYN
3X`OX^Y\c Q_S^K\$ 6S]^ KNN1_S^K\=^\SXQ NY_LVO ,_SVNO\ =^\SXQ >cZO AYYN AYYN QO^1_S^K\=^\SXQ$ 1_S^K\ ]OK\MR1_S^K\$ 1_S^K\
,_SVNO\ >cZO
^Y=^\SXQ$ =
^Y=^\SXQ$ =^\S
#HOÁ WYGLDA NA TO E W METODZIE SEARCH NIC SIÅ NIE ZMIENIO TO JEDNAK TERAZ UYWAMY WARTOwCI TYPÎW WYLICZENIOWYCH DZIÅKI CZEMU MAMY PEWNOwÁ E NIE POJAWI SIÅ ADNE PROBLEMY ZWIZANE Z BÅDAMI TYPOGRAFICZNYMI LUB ZASTOSOWANIEM LITER O RÎNEJ WIELKOwCI
AYYN ^Y=^\SXQ$ =^\SXQ
/TO NASZE TYPY WYLICZENIOWE
+LASA 'UITAR UYWA TYCH TYPÎW WYLICZENIOWYCH DO REPREZENTACJI DANYCH DZIÅKI CZEMU MONA WYELIMINOWAÁ BÅDY ZWIZANE Z NIEWAwCIWYM SPOSOBEM ZAPISU AÌCUCHÎW ZNAKÎW
+ dK^OW MY ^KU XKZ\KaN° d\YLSVSÄWc) +y-A®ylR ®7ql¸¬ql²u¬ lÖ J| ®-p|ÍA®Ryl- lRª®Ra| ® ®RAi p|p}ª |ª-J®ÔA¬Ai J| ª|®Ryl- J|p|y-tRa| ||a-u|ª-yl- |7qRu¬ ¬²p- ® |Jy-oJ¬ª-ylRu ª u-a-®¬ylR al - Rtyl-oÔA¬Ai ®-J-yR p¬ Rl- | o¥¸ ®R®t|²É | ªlÖARoG oRJy|A®R²ylR -ªlql²u¬G ¸R -qlp-Ao- ¬²p- oR 7-J®lRo |qlJyl uylRo ª-¸qlª- lR 7ÖJ®lR o¥¸ -p t- ª| ®¬-®-É |7qRu}ªG aJ¬¸ |®R® ®- ||ª-ylR ¬}ª ª¬qlA®Ryl|ª¬Ai |-ªlql²u¬ oÔ ®-}ªy| |J ª®aqÖJRu 7R®lRA®RÍ ª- ¬}ªG o-p l 7R®lRA®RÍ ª- ª- |²Al + ¥yp ¥ ªlJ®Ryl- ¬²p- |®y-A®- | uylRo |7qRu}ªG - ® y-®Ra| W t- ªlRo®R ¥ ®¬u-ylR -qlp-Aol +OD KTÎRY NIE JEST WRA I PODATNY NA AWARIE LIWY ZAZ OKREwLA SIÅ JAKO SOLIDN WYCZAJ Y
2OZDZIA
?ZOaXST ]S° ÒO YZ\YQ\KWYaKXSO \YLS ^Y MdOQY YMdOU_TO UVSOX^
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
DKY]^\d Y¸aOU AcUYXKT U\YU a ]aYSW a¸K]XcW Z\YTOUMSO -dK] Z\dOUYXK¨ ]S° Mdc L°NdSO]d a ]^KXSO ]Z\Y]^K¨ acWKQKXSYW ]aYSMR UVSOX^a A Z_]^cMR aSO\]dKMR ZYXSÒOT aZS]d U\^US YZS] TKUSOQYÄ Z\YTOU^_ XKN U^\cW KU^_KVXSO Z\KM_TO]d WYÒO]d ^KUÒO YZS]K¨ TKUSÄ Z\YTOU^ U^\c XSONKaXY _UYºMdc¸OÄ$
>O\Kd a UYVOTXcMR Z_]^cMR aSO\]dKMR dKZS]d ZSO\a]d¦ \dOMd TKU¦ d\YLS¸OÄ \YdZYMdcXKT¦M Z\KMO XKN ^cW Z\YTOU^OW -dc WSK¸Y ^Y MYUYVaSOU a]ZVXOQY d _ZOaXSOXSOW ]S° ÒO KZVSUKMTK L°NdSO NdSK¸K¨ dQYNXSO d YMdOUSaKXSKWS S acWKQKXSKWS _Òc^UYaXSUK)
Nie ma
niemądrych pytań
:$ + dK^OW Z\KM_T¦M XKN ZSO\a]dcW U\YUSOW NY ^aY\dOXSK NY]UYXK¸OQY YZ\YQ\KWYaKXSK WYÒXK aZ\YaKNdK¨ XSOdXKMdXO dWSKXc a Z\YTOUMSO KZVSUKMTS)
9$ >KU Y SVO ^cVUY MK¸c MdK] L°NdSO]d ]S° UYXMOX^\YaK¸
Q¸aXSO XK ZY^\dOLKMR _Òc^UYaXSUK -RYNdS Y ^Y ÒO MRMO]d Lc a]dc]^USO ZYN]^KaYaO MOMRc S WYÒVSaYÄMS KZVSUKMTS dY]^K¸c ZYZ\KaXSO dKSWZVOWOX^YaKXO dKXSW dKMdXSO]d aZ\YaKNdK¨ ZYaKÒXO dWSKXc a TOT Z\YTOUMSO 8SOWXSOT TONXKU XSM XSO ]^YS XK Z\dO]dUYNdSO LcÄ ]^Y]YaK¸ NYL\O Z\KU^cUS S ^OMRXSUS YLSOU^YaO ^KUÒO ZYNMdK] Z\KMc XKN P_XUMTYXKVXYÄMS¦ KZVSUKMTS ^KU Lc WSO¨ ZOaXYĨ ÒO YN ]KWOQY ZYMd¦^U_ L°NdSO YXK NYL\dO dKZ\YTOU^YaKXK
:$
-dc NSKQ\KW Z\dON]^KaSYXc XK ]^\YXSO " ^Y NSKQ\KW UVK]) -dc ^OÒ TO]^ ^Y USVUK NSKQ\KWa s a UYºM_ Z\dON]^KaSK aS°MOT XSÒ TONX¦ UVK]°)
4OÄVS \YdZYMdcXKT¦M Z\KMO XKN Z\YTOU^OW ]U_ZS]d ]S° XK MdcWÄ SXXcW XSÒ dK]ZYUYTOXSO ZY^\dOL S YMdOUSaKº _Òc^UYaXSUK ^Y dK]^KXa ]S° MdcW WYQ¸YLc ]S° \ÒXS¨ >aYTO ZYNOTÄMSO QNcLcÄ aSONdSK¸ Y ^\dOMR U\YUKMR ZYdaKVKT¦McMR XK ^aY\dOXSO a]ZKXSK¸OQY YZ\YQ\KWYaKXSK -Y Lc ]S° a ^KUSW Z\dcZKNU_ dWSOXS¸Y) -dc ]¦NdS]d ÒO >aYTK KZVSUKMTK Lc¸KLc NdS°US ^OW_ VOZ]dK XSÒ TO]^ YLOMXSO K WYÒO QY\]dK)
9$ 4O]^ ^Y NSKQ\KW UVK]% XK ^KUSW NSKQ\KWSO WYÒXK
LYaSOW dKWSOÄMS¨ aS°U]d¦ VSMdL° UVK] :\KaN° WaS¦M NSKQ\KWc UVK] WYQ¦ Z\dON]^KaSK¨ dXKMdXSO aS°MOT SXPY\WKMTS XK ^OWK^ UVK]c XSÒ ZYUKdKVSÄWc a NSKQ\KWKMR dWSO]dMdYXcMR a ^OT U]S¦ÒMO A USVU_ UYVOTXcMR \YdNdSK¸KMR L°NdSOWc NYNKaKVS NY XK]dcMR NSKQ\KWa UYVOTXO SXPY\WKMTO Y UVK]KMR
:$ + dK^OW TO]^OÄWc QY^YaS Lc Z\dOTĨ NY
U\YU_ S \YdZYMd¦¨ ]^Y]YaKXSO dK]KN S ^OMRXSU Z\YTOU^YaKXSK YLSOU^YaOQY) :\KaNK)
9$ 8SOd_ZO¸XSO 7YÒXK a]UKdK¨ TO]dMdO USVUK SXXcMR
\dOMdc NdS°US U^\cW ZYaSXXSÄWc ZYWM O]^ 'lRq|p| ylR l-ql²u¬ | | ®R7lR ¥®¬p-yl- |J pqlRy - ly\|u-Aol | ª¬u-a-yl-Ai -ªl-y¬Ai ª|®|yRu¥ ||a-u|ª-yl¥ R-® oRJy-p y-J®RJt A®-G 7¬ ®Rp|y-É lÖG A®¬ R ª¬u-a-yl- Ô J|7®R R-ql®|ª-yR ®R® y-® p|J -ªJ´u¬ ®- RuG A®¬ y-®- -qlp-Ao- J®l-t- -pG o-p7¬ |7lR Ra| ¸¬A®¬t ¬lRpF /TO PROGRAM TESTOWY ZAKTUALIZOWANY TAK BY MÎG KORZYSTAÁ Z NOWEJ WERSJI NARZÅDZIA WYSZUKUJCEGO GITARY W MAGAZYNIE 2YwKA
public class FindGuitarTester { public static void main(String[] args) { // Inicjalizacja zawartości magazynu gitar Ryśka Inventory inventory = new Inventory(); initializeInventory(inventory);
5YWAMY W WYLICZENIOW NIM TYPÎW NIE BÅDZIE YCH 4YM RAZEM PROBLEMÎW WIÅC ADNYCH NIEWAwCIW SPOWODOWANYCH IE AÌCUCHAMI ZAPISANYMI ZNAKÎW
Guitar whatEveLikes = new Guitar(””, 0, Builder.FENDER, “Stratocastor”, Type.ELECTRIC, Wood.ALDER, Wood.ALDER); List matchingGuitars = inventory.search(whatEveLikes); if (!matchingGuitars.isEmpty()) { System.out.println(“Ewo, może spodobają Ci się następujące gitary:”); for (Iterator i = matchingGuitars.iterator(); i.hasNext(); ) { Guitar guitar = (Guitar)i.next(); System.out.println(“ Mamy w magazynie gitarę “ + guitar.getBuilder() + “ model “ + guitar.getModel() + “, jest “ + “to gitara” + guitar.getType() + “ :\n “ + guitar.getBackWood() + “ - tył i boki,\n “ + guitar.getTopWood() + “ - góra.\n Możesz ją mieć za “ + guitar.getPrice() + “PLN!\n ----”); } } else { System.out.println(“Przykro mi, Ewo, nie znalazłem nic dla Ciebie.”); }
4ERAZ OTRZYMUJEMY CA LISTÅ GITAR KTÎRE SPENIAJ WYMAGANIA OKREwLONE PRZEZ KLIENTA
}
7 TEJ WERSJI PROGRAMU TESTOWEGO MUSIMY PRZEJRZEÁ CA LISTÅ INSTRUMENTÎW ZWRÎCON PRZEZ NARZÅDZIE WYSZUKUJCE
class FindGuitar { main() }
0SXN1_S^K\>O]^O\TK`K
/ TAK 4ERAZ PROGRAM DZIAA DOKADNIE TAK JAK TEGO CHCIAEM
7SZYSTKO ZADZIAAO TAK %WA MOGA OBEJRZEÁ KILK JAK POWINNO JEJ GITAR A KLIENCI NA A POLECONYCH KUPOWAÁ INSTRUMENTY POWRÎT ZACZÅLI W SKLEPIE 2YwKA
JESTEu TUTAJ
:ASTOSOWANIE ZASAD OBIEKTOWYCH
A\¨Wc NY XK]dcMR ^\dOMR U\YUa "R-®G plRJ¬ y-®- -qlp-Ao- J®l-t- o¥¸ -pG o-p ¬lRp |7lR Ra| ¸¬A®¬tG u|¸Ru¬ ®-A®ÔÉ ||ª-É ®--J¬ |oRp |ª-yl- |7lRp |ªRa|G 7¬ |-ªlÉ oRo Rq- ¬A®y|²É l ®-RªylÉG ¸R 7ÖJ®lR J|7®R ®-|oRp |ª-y- 4ERAZ KIEDY APLIKACJA DZIAA JU TAK JAK CHCIA 2YSIEK TEN KROK MOEMY UZNAÁ ZA ZAKOÌCZONY
?ZOaXST ]S° ÒO YZ\YQ\KWYaKXSO \YLS ^Y MdOQY YMdOU_TO UVSOX^ :ATEM W KOÂCU NADSZED CZAS GDY MOEMY UPEWNI· SI» E W APLIKACJI NIE MA POWTARZAJCYCH SI» FRAGMENTÄW KODU ORAZ E WSZYSTKIE UYWANE W NIEJ OBIEKTY ZOSTAY DOBRZE ZAPROJEKTOWANE
DK]^Y]_T Z\Y]^O dK]KNc Z\YTOU^YaKXSK YLSOU^YaOQY Lc ZYZ\KaS¨ OVK]^cMdXYĨ YZ\YQ\KWYaKXSK Y 7 TYM KROKU ANALIZUJEM DZIAAJCY PROGRAM GMENTY I SPRAWDZAMY CZY FRA SCALONE S ADA SK SIÅ ICH Z JAK W SENSOWNY SPOSÎB
=^K\KT ]S° Lc Z\YTOU^ YZ\YQ\KWYaKXSK dKZOaXSK¸ ¸K^aYĨ TOQY _^\dcWKXSK S ZYdaKVK¸ XK TOQY aSOVYU\Y^XO ]^Y]YaKXSO
2OZDZIA
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
=d_UKWc Z\YLVOWa ®¬o®¬ou¬ lÖ ylRA| J|pt-JylRo y-®Ru¥ y-®ÖJ®l¥ J| ª¬®¥plª-yl- al - l -ªJ´u¬G A®¬ ¥J- lÖ y-u ®y-qR´É o-plR² |7qRu¬G p }R u|aql7¬²u¬ |®ªlÔ®-É ®¬ ª¬p|®¬ -yl¥ | ¬Ai ®--J |oRp |ª-yl- |7lRp |ªRa| +-A®ylou¬ |J ®R-y-ql®|ª-yl- ||7¥ J®l-t-yl- uR |J¬ search() pq-¬ Inventory
3ZUKAM AKUSTYCZNEJ GITARY FIRMY -ARTIN MASZ MOE JAKv 2YvKU
+LIENT PODAJE ZBIÎR KRYTERIÎW JAKIE MUSI SPENIAÁ JEGO WYMARZONA GITARA JEST ON PRZEKAZYWANY W FORMIE OBIEKTU 'UITAR
null, null Builder.MARTIN Type.ACUSTIC „OM-18” Wood.MAHOGANY Wood.OAK
1_S^K\ +LIENT NIE PODAJE ANI CENY POSZUKIWANEJ GITARY ANI NUMERU SERYJNEGO s INFORMACJE TE S BOWIEM UNIKALNE DLA KADEJ GITARY 0ODAWANE S JEDYNIE TE WYMAGANIA NA PODSTAWIE KTÎRYCH NALEY ODSZUKAÁ GITARÅ
AC>«Í
class Inven{
search ()
h()}
3X`OX^Y\cTK`K
$O METODY SEARCH GANIA PRZEKAZYWANE S WYMA OKREwLONE PRZEZ KLIENTA JE A JEJ WYWOANIE POWODU NIA WA ROZPOCZÅCIE PRZESZUKI MAGAZYNU 2YwKA +ADA GITARA ZNAJDUJCA SIÅ W MAGAZYNIE 2YwKA JEST PORÎWNYWANA ZE SPECYFIKACJ UYTKOWNIKA PRZEKAZAN W FORMIE OBIEKTU 'UITAR
1_S^K\
?7C=³ -dc MYÄ ^_ TO]^ XSO a ZY\d¦NU_) 4KUSO Z\YLVOWc WYQ¦ ac]^¦ZS¨ a XK\d°NdS_ ac]d_USaKaMdcW KZVSUKMTS cZO AYYN AYYN QO^1_S^K\=^\SXQ$ 1_S^K\ ]OK\MR1_S^K\=ZOM$ 6S]^
4ERAZ DO METODY SEARCH PRZEKAZYWANY JEST OBIEKT 'UITAR3PEC A NIE 'UITAR
public class Inventory { // właściwości, konstruktor, inne metody
public List search(GuitarSpec searchSpec) { List matchingGuitars = new LinkedList(); STKIE for (Iterator i = guitars.iterator(); i.hasNext(); ) { /BECNIE WSZY INFORMACJE JAKICH Guitar guitar = (Guitar)i.next(); UYWAMY PODCZAS GuitarSpec guitarSpec = guitar.getSpec(); PORÎWNYWANIA POCHODZ Z OBIEKTÎW if (searchSpec.getBuilder() != guitarSpec.getBuilder()) 'UITAR3PEC A NIE continue; 'UITAR String model = searchSpec.getModel().toLowerCase(); if ((model != null) && (!model.equals(“”)) && (!model.equals(guitarSpec.getModel().toLowerCase()))) continue; 4EN KOD JEST NIEMAL if (searchSpec.getType() != guitarSpec.getType()) IDENTYCZNY JAK WCZEwNIEJ A JEDYNA continue; RÎNICA POLEGA NA if (searchSpec.getBackWood() != guitarSpec.getBackWood()) TYM E PORÎWNUJEMY INFORMACJE continue; PRZECHOWYWANE if (searchSpec.getTopWood() != guitarSpec.getTopWood()) W OBIEKCIE 'UITAR3PEC continue; matchingGuitars.add(guitar); class Inven} tory { return matchingGuitars; Search() } 3X`OX^Y\cTK`K Y NIEZNACZNE } OÁ WPROWADZILIwM #H DZIE KLASY TO TA MODYFIKACJE W KO RACA LISTÅ GITAR ZW METODA WCI DANE KRYTERIA SPENIAJCYCH ZA
2OZDZIA
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
:\dcQY^_T ]S° XK UYVOTXc ^O]^ 7¬ ®R R |ª-É R ª®¬ plR u|J¬\lp-AoRG 7ÖJ®lR® u¥l-t ª|ª-J®lÉ plqp- ®ul-y ª pq-lR FindGuitarTesterF public class FindGuitarTester {
4YM RAZEM KLIENT PRZEKAZUJE DO METODY SEARCH OBIEKT KLASY 'UITAR3PEC
public static void main(String[] args) { // Inicjalizacja zawartości magazynu gitar Ryśka Inventory inventory = new Inventory(); initializeInventory(inventory); GuitarSpec whatEveLikes = new GuitarSpec(Builder.FENDER, “Stratocastor”, Type.ELECTRIC, Wood.ALDER, Wood.ALDER); List matchingGuitars = inventory.search(whatEveLikes); if (!matchingGuitars.isEmpty()) { System.out.println(“Ewo, może spodobają Ci się następujące gitary:”; for (Iterator i = matchingGuitars.iterator(); i.hasNext(); ) { Guitar guitar = (Guitar)i.next(); GuitarSpec spec = guitar.getSpec(); 4AKE TUTAJ System.out.println(“ Mamy w magazynie gitarę “ + UYWAMY NOWEJ KLASY spec.getBuilder() + “ model “ + spec.getModel() + “, 'UITAR3PEC jest “ + “to gitara” + spec.getType() + “ :\n “ + spec.getBackWood() + “ - tył i boki,\n “ + spec.getTopWood() + “ - góra.\n Możesz ją mieć za “ + spec.getPrice() + “PLN!\n ----”); } } else { System.out.println(“Przykro mi, Ewo, nie znalazłem nic dla Ciebie.”); } } private static void initializeInventory(Inventory inventory) { // dodanie gitar do magazynu }
}
class FindGuitar { main() }
0SXN1_S^K\>O]^O\TK`K
JESTEu TUTAJ
:ASTOSOWANIE ZASAD PROJEKTOWANIA OBIEKTOWEGO
)
.6+-D/19 7+7 8+ >9 DAaYSW dKNKXSOW TO]^ QY YNXKVOШ A ZYXSÒ]dcMR Z_]^cMR aSO\]dKMR dKZS]d XK MdcW aON¸_Q -SOLSO ZYVOQK ^OX Z\YLVOW Y\Kd a TKUS ]ZY]L WYÒXK Lc QY \YdaS¦dK¨
JESTEu TUTAJ
#ZY PROSTE ZMIANY NAPRAWDÃ S PROSTE
.O WIESZb :AWSZE UWIELBIAEM GRA· NA STRUNOWYCH GITARACH *AK TRUDNE BYOBY ZMODYFIKOWANIE APLIKACJI W TAKI SPOSÄB BYM MÄG SPRZEDAWA· TAKIE GITARY I ABY MOI KLIENCI MOGLI JE WYSZUKIWA·
4KU ¸K^aY L°NdSO aZ\YaKNdS¨ ^KU¦ dWSKX° NY KZVSUKMTS cZO QO^,KMUAYYN$ AYYN QO^>YZAYYN$ AYYN
A TKUSMR SXXcMR WSOT]MKMR KZVSUKMTS ZYaSXSOXOÄ aZ\YaKNdS¨ dWSKXc a UYNdSO ^KU Lc ZYNMdK] ac]d_USaKXSK QS^K\ UVSOXMS cZO AYYN AYYN QO^1_S^K\=^\SXQ$ 1_S^K\ ]OK\MR1_S^K\=ZOM$ 6S]^
,_SVNO\
AC>«Í
>cZO
^Y=^\SX ^Y=^\SX
?7C=³
AYYN ^Y=^\SXQ$ =^\SXQ
8K MdcW ZYVOQK Z\dOaKQK _^aY\dOXSK XYaOT a¸KÄMSaYÄMS Y XKdaSO X_W=^\SXQ] XKN NYNKXSOW a¸KÄMSaYÄMS VYQSMdXOT YU\OÄVKT¦MOT Mdc NKXK QS^K\K WK ]^\_X)
JESTEu TUTAJ
-AMY PROBLEM Z HERMETYZACJ
DKY]^\d Y¸aOU
:\dcZS]US NY NSKQ\KW_ UVK] KZVSUKMTS YZAYYN$ AYYN
-USIMY ZMIENIÁ KONSTRUKTOR TEJ KLASY GDY W JEGO WYWOANIU S PRZEKAZYWANE WSZYSTKIE INFORMACJE KTÎRE NASTÅPNIE ZAPISUJEMY W OBIEKCIE 'UITAR3PEC
Q_S^K\$ 6S]^ KNN1_S^K\=^\SXQ NY_LVO ,_SVNO\ =^\SXQ >cZO AYYN AYYN QO^1_S^K\=^\SXQ$ 1_S^K\ ]OK\MR1_S^K\=ZOM$ 6S]^
,_SVNO\ ^Y=^\SXQ$ =^\SXQ
+OLEJNY PROBLEM MUSIMY ZMIENIÁ METODÅ SEARCH KLASY )NVENTORY ABY UWZGLÅDNIÁ NOWE WAwCIWOwCI DODANE DO KLASY 'UITAR3PEC
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
#ZYLI PROBLEM POLEGA WAvNIE NA TYM $ODAWANIE NOWYCH WAvCIWOvCI DO KLASY 'UITAR3PEC NIE POWINNO ZMUSZA· NAS DO WPROWADZANIA MODYFIKACJI W KLASACH 'UITAR ORAZ )NVENTORY #ZY TAKE TEN PROBLEM MOEMY ROZWIZA· WYKORZYSTUJC HERMETYZACJ»
9a]dOW s W_]SWc RO\WO^cdYaK¨ ]ZOMcPSUKMTO QS^K\c S VOZSOT SdYVYaK¨ TO YN ZYdY]^K¸cMR P\KQWOX^a KZVSUKMTS aY\dOXSO KZVSUKMTS U^\O NdSK¸KT¦ VOMd ]¦ XSOZ\KaSN¸YaY dKZ\YTOU^YaKXO dKNYaYVS UVSOX^K TONXKU >YLSO Z\dc]ZY\dc aSOV_ dWK\^aSOº Z\YLVOWa S XSOZ\dO]ZKXcMR XYMc dWK\XYaKXcMR XK ÒW_NXO ZYZ\KaSKXSO L¸°Na
+XKVSdK S Z\YTOU^YaKXSO YLSOU^YaO _NY]^°ZXSK WO^YNc ZYdaKVKT¦MO XK ^aY\dOXSO ZYZ\KaXSO dKZ\YTOU^YaKXcMR KZVSUKMTS ]ZO¸XSKT¦McMR acWKQKXSK XSO ^cVUY UVSOX^K VOMd ^KUÒO Z\YQ\KWS]^c
$OBRZE ZAPROJEKTOWANE APLIKACJE S SUPER
9 DAKNOU S 4KXUK +-J®ª|Í J| y- o¥¸ J®l²F
"-JRp l -yp- AiAÔ A®Ra|² ªlÖARo yl¸ y|u-qyR J®ªlA®pl Jq- - '®¬ plR ®-7-ªpl "-Jp- W ®-A®¬y-oÔA |J q-®u|ªRa| RqRªl®|-G - p|ÍA®ÔA y- ®ÖAlR a-oÔA¬u l J®ªl-Ai J| a--¸¥ W Ô ®J-qylR R|ª-yR Jq- Ra| R¸ "-JRp AiAl-t7¬G ¸R7¬ y-ªR J®ªlA®pl Jq- - R-a|ª-t¬ y- y-Al²ylÖAlR |J|ªlRJylRa| ®¬Alp¥ lq| - "-JRp l -yp-G ylR®-J|ª|qRyl ®R ®ª¬A®-oyRo q- lp|ªRo pq-plG p }|®ª-q-t- ¥ ªAi|J®lÉ l ª¬Ai|J®lÉ ª p-¸JRo AiªlqlG ®JRA¬J|ª-ql lÖ ®-J®ª|ylÉ J| \lu¬ lRJ®ªl-V R-® "-JRp AiARG ¸R7¬² "¬ ª|®¬t J®ªlA®pl Jq- - y- ul-Ö oRa| |A®Rplª-Í
"##" #
4ADEK
2OZDZIA
*ANKA
'ROMADZENIE WYMAGAÊ
DKMdXSTWc ^aY\dc¨ N\daSMdUS NVK Z]K lRª®Ô ®RA®ÔG o-plRo 7ÖJ®lRu¬ | ®R7|ª-qlG 7ÖJ®lR pq-- RR®Ry ¥oÔAJ®ªlA®pl Jq- - -®ªlou¬ oÔ DogDoor - |A®Ô p¥ J|J-u¬ J| ylRo plqp| ¬Ai uR |JF :AKADAMY E KLA SIÅ KOMUNIKOWAÁ SA $OG$OOR BÅDZIE ELEKTRONICZNYMI Z URZDZENIAMI ZA W DRZWICZKACH DLA INSTALOWANYMI PRODUKOWANYCH PR PSÎW ZEZ $ARKA
public class DogDoor { private boolean open; public DogDoor() { this.open = false; }
4O JEST BARDZO PROSTE METODA OPEN PO PROSTU OTWIERA DRZWICZKIb
public void open() { System.out.println(”Drzwiczki dla psa zostały otworzone.”); open = true; }
bA METODA CLOSE ZAMYKA JE
4A METODA ZWRACA BIECY STATUS DRZWICZEK CZY S OTWARTE CZY ZAMKNIÅTE
public void close() { System.out.println(”Drzwiczki dla psa zostały zamknięte.”); open = false; } public boolean isOpen() { return open; } } #AY POWYSZY KODb
bZOSTAJE UMIESZCZONY W PLIKU $OG$OORJAVAb
class DogDoor { open () }
.YQ.YY\TK`K
I BÅDZIE KONTROLOWAÁ URZDZENIA ELEKTRONICZNE UMIESZCZONE W DRZWICZKACH DLA PSA 4ADKA I *ANKI
4ERAZ WSZYSTKO ZALEY OD #IEBIE s DOLA PSA !ZORA LOS JEGO WAwCICIELI 4ADKA I *ANKI ORAZ SUKCES 4WOJEGO SZEFA $ARKA
JESTEu TUTAJ
0ISANIE KODU OBSUGUJCEGO DRZWICZKI DLA PSA
7KQXO]SUS d UYNOW Teraz napiszmy kolejną klasę — Remote — która pozwoli, by drzwiczki dla psa były obsługiwane za pomocą pilota. Tadek i Janka będą mogli otwierać drzwiczki bez wychodzenia z łóżka; wystarczy nacisnąć odpowiedni przycisk na pilocie. Uważaj… może się okazać, że nie wszystkie magnesiki z kodem są potrzebne. 4AK WIEMY E TO NIE SZCZEGÎLNIE WYMAGAJCAJEST KLASA !LE NIE MARTW SIÅ NA RAZIE TO TYLKO ROZGRZ EWKA
public class Remote { private
door;
public Remote( this.door = door; }
) {
public void pressButton() { System.out.println(”Naciśnięto przycisk na pilocie...”); if ( . ()) { door. (); } else { door. (); } } }
Kiedy skończysz, porównaj swoją odpowiedź z naszą, zamieszczoną na stronie 134.
boolean close close
tru fals en open
4O METODY KTÎRE NAPISAEw BY KONTROLOWAÁ DZIAANIE DRZWICZEK DLA PSA
2OZDZIA
D
e
isO
false boolean
i Open isOpen
+ADA KLASA POTRZEBUJE JAKICHw DZIAAÌ LOGICZNYCH NIEPRAWDA
4A WAwCIWOwÁ OKREwLA CZY AKTUALNIE DRZWICZKI S OTWORZONE CZY ZAMKNIÅTE
D DogDoor
DogDoor
door
door
4YCH ELEMENTÎW MOESZ UYÁ DO KOMUNIKOWANIA SIÅ Z OBIEKTEM DRZWICZEK DLA PSA
'ROMADZENIE WYMAGAÊ
>O]^ Z\YQ\KW_ -ªJ´u¬G A®¬ ª®¬ p| J®l-t-G o-p y-qR¸¬ '¬}7¥o J®l-t-ylR y|ª¬Ai J®ªlA®Rp Jq- -
=^a\d UVK]° U^\K Z\dO^O]^_TO NdSK¸KXSO N\daSMdOU .YQ.YY\=SW_VK^Y\TK`K public class DogDoorSimulator { public static void main(String[] args) { DogDoor door = new DogDoor(); Remote remote = new Remote(door); System.out.println(”Azor szczeka, by wyjść na spacer...”); remote.pressButton(); System.out.println(”\nAzor wyszedł na spacer...”); remote.pressButton(); System.out.println(”\nAzor załatwił co trzeba...”); remote.pressButton(); System.out.println(”\nAzor wrócił do domu...”); remote.pressButton(); } }
.YQ.YY\=SW_VK^Y\TK`K
=UYWZSV_T a]dc]^USO ZVSUS Ð\N¸YaO aMRYNd¦MO a ]U¸KN KZVSUKMTS
JAVAC JAVA .YQ.YY\TK`K KNUK S 4KXUS aO\]TK 6S 1
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]T K 4KU NdSK¸KT¦ N\daSMdUS
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOU K >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
0O WYKONANIU KROKU !ZOR ZNAJDZIE SIÅ Z POWROTEM W DOM U PO ZAATWIENIU WSZYSTKICH SWOICH POTRZEB A 4ADEK I *ANKA BÅD USZCZÅwLIWIENI
º
! TO JEST NOWA LISTA OPISUJCA SZCZEGÎOWO JAK NAPRAWDÅ MAJ DZI AAÁ DRZWICZKI DLA PSA
2OZDZIA
-OEMY UYÁ TYCH PUNKTÎW BY UPEWNIÁ SIÅ E NIE BRAKUJE NAM ADNYCH WYMAGAÌ
'ROMADZENIE WYMAGAÊ
Nie ma
niemądrych pytań
:$ + dK^OW acWKQKXSO TO]^ ZY Z\Y]^_ TONX¦ d YZO\KMTS U^\¦ UVSOX^ MRMO Lc ^aY\dYXK KZVSUKMTK WYQ¸K acUYXcaK¨)
9$
A \dOMdcaS]^YÄMS acWKQKXSO TO]^ MdcWÄ dXKMdXSO aS°MOT XSÒ TONcXSO dKMRMSKXU¦ UVSOX^K MRY¨ ^Y NYL\O WSOT]MO YN U^\OQY WYÒXK \YdZYMd¦¨ DKMdXST YN ^OQY MY UVSOX^ MRMO S MdOQY YMdOU_TO Y\Kd MY aON¸_Q TOQY YMdOUSaKº S Z\dcZ_]dMdOº ZYaSXSOX \YLS¨ ^aY\dYXc ]c]^OW 8SOWXSOT TONXKU aMS¦Ò ZYdY]^KTO dXKMdXSO aS°MOT ]Z\Ka Y U^\cMR W_]S]d ZYWcÄVO¨j :KWS°^KT aS°U]dYĨ Y]L L°NdSO YMdOUSaK¸K ÒO ]c]^OW ZYaSXSOX NdSK¸K¨ ZYZ\KaXSO XKaO^ a \KdSO ac]^¦ZSOXSK Z\YLVOWa .VK^OQY ^OÒ W_]S]d Z\dOaSNdSO¨ MY WYÒO ZTĨ XSO ^KU S NYNK¨ acWKQKXSK U^\O ZYdaYV¦ \YdaS¦dK¨ ^O Z\YLVOWc .YL\c dLS\ acWKQKº acU\KMdK ZYdK ^Y Y MdcW a]ZYWSXK¸ _Òc^UYaXSU S TO]^ a ]^KXSO dKNLK¨ Y ZYZ\KaXO NdSK¸KXSO ]c]^OW_ XKaO^ a XSOdacU¸cMR V_L XSO]ZYNdSOaKXcMR ]c^_KMTKMR
:$
8SO \Yd_WSOW NVKMdOQY W_]d° dK]^KXKaSK¨ ]S° XKN ^cW TKU >KNOU S 4KXUK L°N¦ _ÒcaK¨ N\daSMdOU NVK Z]K Y\Kd QNdSO S a TKUSMR ]c^_KMTKMR WYQ¦ ac]^¦ZS¨ Z\YLVOWc -dc ^Y XSO TO]^ SMR Z\YLVOW K XSO WT)
9$
-dc ZKWS°^K]d ZSO\a]dc U\YU XK N\YNdO NY ^aY\dOXSK NY]UYXK¸OQY YZ\YQ\KWYaKXSK) 5YXSOMdXSO W_]S]d ]S° _ZOaXS¨ ÒO KZVSUKMTK L°NdSO NdSK¸K¨ ^KU TKU ]YLSO ^OQY ÒcMdc UVSOX^ XKaO^ TOÄVS YdXKMdK ^Y ÒO L°NdSO YXK _ÒcaKXK SXKMdOT XSÒ >c LcÄ ^Y \YLS¸ + ^Y TO]^ \aXYdXKMdXO d ^cW ÒO W_]S]d XKZ\KaN° NYL\dO d\Yd_WSO¨ TKU ]c]^OW WK NdSK¸K¨ S TKU UVSOX^ L°NdSO QY _ÒcaK¨
:$ + ]c]^OW NVK >KNUK S 4KXUS ^Y
A \dOMdcaS]^YÄMS TONcXcW ]ZY]YLOW _ZOaXSOXSK ]S° ÒO NY]^K\Mdc]d >KNUYaS S 4KXMO N\daSMdUS NVK Z]K U^\O L°N¦ NdSK¸K¨ ZYZ\KaXSO TO]^ ZYdXKXSO MK¸OQY ]c]^OW_ XKaO^ VOZSOT XSÒ YXS Lc ^Y _MdcXSVS S Z\OMcdcTXO d\Yd_WSOXSO TKU ^OX ]c]^OW ZYaSXSOX NdSK¸K¨ A ^KUSW Z\dcZKNU_ NK ]S° LYaSOW Z\dOaSNdSO¨ ZY^OXMTKVXO Z\YLVOWc S \YdaS¦dK¨ TO dKXSW >KNOU S 4KXUK a YQVO dK_aKÒ¦ ÒO MYÄ WYÒO NdSK¸K¨ XSOa¸KÄMSaSO
9$
:$ + dK^OW ZYaSXSOXOW acWcÄVK¨ MK¸¦
dacMdKTXO N\daSMdUS NVK Z]K XSOZ\KaNKÒ)
=c]^OW ^Y a]dc]^UY MY TO]^ XSOdL°NXO NY ]ZO¸XSOXSK MOVa ZY]^KaSYXcMR Z\dOd UVSOX^K A XK]dcW Z\dcZKNU_ NY ]c]^OW_ YMdcaSÄMSO ^\dOLK dKVSMdc¨ ]KWO N\daSMdUS NVK Z]K TONXKU YZ\Md XSMR NY ]c]^OW_ XKVOÒc ^KUÒO ZSVY^ ,Od XSOQY N\daSMdUS XSO WYQ¸cLc NdSK¸K¨ ZYZ\KaXSO S dQYNXSO d YMdOUSaKXSKWS UVSOX^K
WK]° Z\dO\ÒXcMR Z\YLVOWa U^\O WYQ¦ ac]^¦ZS¨ USONc >KNOU S 4KXUK dKMdX¦ _ÒcaK¨ N\daSMdOU NVK SMR +dY\K)
9$ .YU¸KNXSO A¸KÄMSaSO
8KTVOZ]dcW ]ZY]YLOW dQ\YWKNdOXSK NYL\cMR acWKQKº TO]^ NY]UYXK¸O d\Yd_WSOXSO MY ]c]^OW ZYaSXSOX \YLS¨
d\LWc ^Y ^O\Kdj
:YdK ^cW MRY¨ >KNOU 4KXUK KXS +dY\ XSO XKVOÒ¦ NY ]c]^OW_ ^Y TONXKU ZYNMdK] TOQY Z\YTOU^YaKXSK W_]SWc SMR _adQV°NXS¨ + dK^OW ^KU XKZ\KaN° S]^XSOTO dXKMdXSO aS°MOT \dOMdc XSÒ ]KWO N\daSMdUS Y U^\cMR W_]SWc ZKWS°^K¨ ZS]d¦M XK]d¦ KZVSUKMT°
JESTEu TUTAJ
4O CO MOE SIÃ POPSU¿ NA PEWNO SIÃ POPSUJE
DKZVKX_T MY WYÒO ]S° ZYZ]_¨ a ]c]^OWSO |yl¸Ro ®RJ -ªlql²u¬ Jl-a-u |p-®¥oÔA¬G ª o-pl |}7 |ªlyy¬ J®l-t-É J®ªlA®pl Jq- ®-u}ªl|yR ®R® "-Jp- l -ypÖ '®¬ plR ®-ulR®A®|yR y- Jl-a-ulR A¬\¬ |J|ªl-J-oÔ p|p|u ® ql ¬ ®-ulR®A®|yRo y- |ylR z` RJy-p A®--ul ®J-®Ryl- ylR 7ÖJÔ ®-Ai|J®lÉ J|pt-JylR ªRJt¥a ®RªlJ®l-yRa| q-y¥G Jq- Ra| R¸ J|l-ql²u¬ J| Jl-a-u¥ ¥ª-al | |7qRu-AiG o-plR u|aÔ lÖ |o-ªlÉ |JA®- p|®¬ -yl- ® J®ªlA®Rp
*ANKA OTWÄRZ DRZWICZKI DLA !ZORA BO TEN PIES INACZEJ NIE PRZESTANIE SZCZEKA·
(AU HAUU
! CO JEwLI ANI 4ADKA ANI *ANKI NIE BÅDZIE AKURAT W DOMU #O SIÅ STANIE JEwLI NIE USYSZ SZCZEKANIA !ZORA
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\
#ZY !ZOR ZAWSZE SZCZEKA KIEDY MUSI WYJwÁ NA SPACER ! CO JEwLI W TAKICH SYTUACJACH DRAPIE W DRZWI
>KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U
XK ZSVYMSO A DLATEGO E ! CO JEwLI !ZOR SZCZEK GODNY #ZY LUB NY WA WO NER ZDE T JES LI 4ADEK LUB TO BÅDZIE PROBLEM JEw A !ZOR ZKI WIC DRZ ORZ *ANKA OTW NIE WYJDZIE NA SPACER
NA ZEWNTRZ *EwLI !ZOR UTKNIE *ANKA BÅD LUB K DE TO CZY 4A O SZCZEKANIE MOGLI USYSZEÁ JEGK BY OTWORZYÁ CIS ZY I NACISNÁ PR CIÁ GO DO DRZWICZKI I WPUw KA OD wR
" .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO
2OZDZIA
'ROMADZENIE WYMAGAÊ
#ZY JESTEv W STANIE WY MYvLI· INNE PROBLEMY JAKIE EWENTUALNIE MOG SI» POJAWI· *EvLI TAK TO vWIETNIEb I IM WI»CEJ PROBLEMÄW B»DZIESZ W STANIE PRZ EWIDZIE· TYM MNIEJ WRALIWA I BA RDZ APLIKACJA 0ONIEJ BEZP IEJ SOLIDNA B»DZIE TWORZONA OvREDNIO NA DIAGRAMIE ZAPISZ WSZYSTKIE POTENCJALNE PROBLEMY I NIEOCZEKIW ANE SYTUACJE JAKIE PRZYCH ODZ #I DO GOWY
#ZY MUSIMY UWZGLÅDNIAÁ PRZYPADEK ZABLOKOWANIA SIÅ DRZWICZEK #ZY TO BÅDZIE RACZEJ PROBLEM SPRZÅTOWY NI PROGRAMOWY
4ERAZ CZUJ» SI» ZNACZNIE LEPIEJ
.\daSMdUS Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d
! CO JEwLI !ZOR ZOSTANIE WEWNTRZ
+dY\ dK¸K^aSK ]aYTO ZY^\dOLc
! CO JEwLI DRZWICZKI SIÅ AUTOMATYCZNIE ZAMKNÅY ZANIM JESZCZE !ZOR ZDY ZAATWIÁ SWOJE POTRZEBY
!
+dY\ aMRYNdS NY Ä\YNUK
JESTEu TUTAJ
/CZEKUJ E COu MOE PÌJu¿ NIE TAK
:\YLVOWc a NdSK¸KXS_ ]c]^OW_ ]¦ YL]¸_QSaKXO Z\dOd ÄMSOÒUS KV^O\XK^caXO "R-®G plRJ¬ o¥¸ |J-tR² plqp- | RyAo-qy¬Ai |7qRu}ªG o-plR u|aÔ ª¬ ÔlÉ ª ¬ RulRG |ªlylRyR² ®-p ¥-ql®|ª-É ª|oÔ ql Ö ®RA®¬G p }R u¥®Ô lÖ ®J-®¬ÉG 7¬ u|¸y- ¥®y-ÉG ¸R J®ªlA®pl Jq- - J®l-t-oÔ |-ªylR |yl¸Ro ®-l®G A| |ªlyy| lÖ -É ª ®¬-Jp¥G aJ¬ J®ªlA®pl ®-upyÔ lÖ -¥ |u- ¬A®ylRG ®-ylu oR®A®R ®| ®JÔ¸¬ ª}AlÉ J| J|u¥
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 6S]^K acWKQKº
4O JEST TA SAMA LISTA WYMAGAÌ KTÎR PRZEDSTAWILIwMY NA STRONIE "YÁ MOE PÎzNIEJ BÅDZIEMY MUSIELI J ZAKTUALIZOWAÁ JEDNAK NA RAZIE LISTA JEST JESZCZE W PORZDKU
.\daSMdUS NVK Z]K NVK >KNU K S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS
-OEMY UYÁ TAKIEJ aLISTY ZAGNIEDONEJp BY PRZEDSTAWIÁ PEWNE ZDARZENIA DODATKOWE KTÎRE MOG WYSTPIÁ W RAMACH KROKU
*EwLI !ZOR ZOSTANIE NA ZEWNTRZ TO WPUSZCZENIE GO DO DOMU WYMAGA KILKU DODATKOWYCH KROKÎW +ROKI TE NAZYWAMY wCIEK ALTERNATYWN
+dY\ ]dMdOUK Lc a¸KÄMSM SOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK >KNOU V_L 4KXUK XKMS]UK T¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\ KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^ \d +dY\ dK¸K^aSK ]aYTO ZY^\d OLc .\daS dKWcUKT¦ ]S° K_^Y WK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSM SOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ >KNOU V_L 4KXUK XKMS]UK T¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\ KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦ $ZIÅKI DOPISANIU KILKU DODATKOW YCH KROKÎW !ZOR MOE JU WRÎCIÁ DO DOMU POMIMO TEGO E 4ADEK I *ANKA W OGÎLE JESZCZE NIE PRZEWIDZIELI MOLIWOwCI WYSTPI ENIA TAKIEGO PROBLEMU
2OZDZIA
7SZYSTKIE TE NOWE KROKI SU DO ROZWIZANIA PROBLEMU KTÎRY POJAWI SIÅ KIEDY DRZWICZKI ZAMKN SIÅ AUTOMATYCZNIE ZANIM !ZOR ZDY WRÎCIÁ DO DOMU
'ROMADZENIE WYMAGAÊ
(EJ NA STUDIACH MIAEM ZAJ»CIA NA TEN TEMATb #ZY PO PROSTU NIE PISZEMY PRZYPADKU UYCIA
9a]dOW 9N ]KWOQY ZYMd¦^U_ ZS]KVSÄWc Z\dcZKNUS _ÒcMSK lRJ¬ ®-l¬ª-tR² p|pl p|ylRA®yR J| ª¬¥®A®Ryl®|- y- -ARG ª ®RA®¬ªl |²Al ®-l¬ª-tR² ®¬-JRp ¥¸¬Al- -ya ¥R A-R
®¬-JRp ¥¸¬Al- | ql - p|p}ª W A®¬yy|²AlG o-plR ¬ Ru u¥l ª¬p|y-ÉG 7¬ A|² lÖ -t| ' ®¬-Jp¥ "-Jp- l -ypl ¬u A®¬u² oR ª¬¥®A®RylR ®|y- -ARG 7¬ ®-t- ªlt ª|oR | ®R7¬G l }´ylRo®R ª¥®A®RylR a| ® |ª| Ru J| J|u¥
3PÎJRZ 4O JEST PRZYPADEK UYCIA
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\] TK 4KU NdSK¸KT¦ N\daSMdUS +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdO UK >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa _ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
/KAZUJE SIÅ E JU NAPISAEw PRZYPADEK UYCIA DLA DRZWICZEK DLA PSA ZAMÎWIONYCH PRZEZ 4ADKA I *ANKÅ
JESTEu TUTAJ
#O TO JEST PRZYPADEK UYCIA
:YXYaXO Z\dON]^KaSOXSO Z\dcZKNUa _ÒcMSK lR²ªl-J|ulR ®-A®ÔtR² lÖ ®-ou|ª-É ®¬-Jp-ul ¥¸¬Al- o¥¸ ylRu-q ° |y ª RA®G R-® oRJy-p ®¬o®¬ou¬ lÖ J|pt-JylRG | A| Ai|J®l ª Ro ql²AlR p|p}ª W A®¬ql ª ®¬-Jp¥ ¥¸¬Al- J®ªlA®Rp Jq- - ®-u}ªl|y¬Ai ®R® "-Jp- l -ypÖ
:\dcZKNOU _ÒcMSK YZS]_TO MY ]c]^OW W_]S d\YLS¨ a MOV_ dK]ZYUYTOXSK UYXU\O^XOQY acWKQKXSK _Òc^UYaXSUK
OWIEDZI NA 0RZYPADKI UYCIA TO ODP OD aCOp PYTANIE ZACZYNAJCE SIÅZKI DLA PSA #O MUSZ ZROBIÁ DRZWICPRZEJMUJ SIÅ 0AMIÅTAJ NA RAZIE NIE Y DO TEGO EM PYTANIEM aJAKp DOJDZI NIECO PÎzNIEJ
+ONKRETNY PRZYPADEK UYCIA REALIZUJE TYLKO JEDEN CEL DKA 7 PRZYPADKU 4A LEM CE M TY I NK I *A IE JEST WYPUSZCZEN !ZORA NA SPACER BEZ KONIECZNOwCI KA WSTAWANIA Z Î
'DYBY 4ADEK I *ANKA STWIERDZILI E CHC wLEDZIÁ ILE RAZY !ZOR KORZYSTA Z DRZWICZEK TO BYBY TO ZUPENIE INNY CEL A ZATEM DO JEGO REALIZACJI POTRZEBOWABYw ZUPENIE INNEGO PRZYPADKU UYCIA
5YTKOWNIK LUB UYTKOWNICY ZNAJDUJ SIÅ NA ZEWNTRZ SYSTEMU A NIE S JEGO CZÅwCI !ZOR KORZYSTA Z SYSTEMU I TAKE ZNAJDUJE SIÅ POZA NIM *ANKA WYZNACZYA KONKRETNY CEL JAKI SYSTEM MA SPENIAÁ JEDNAK TAKE I ONA ZNAJDUJE SIÅ POZA SAMYM SYSTEMEM
7CI OCZYWIwCIE KONCENTRUJEMY SIÅ NA TYM CO SYSTEMU MUSI aROBIÁp #O POWINNO SIÅ ZDARZYÁ BY !ZOR MÎG WYJwÁ NA SPACER I PÎzNIEJ WRÎCIÁ DO DOMU
)STOT TWORZENIA PRZYPADKÎW UYC ZREALIZOWANIE CELÎW WYZNACZONYCH IA JEST PRZEZ KLIENTA JAKI POWINIEN BYÁ EFEKT WYKONANIA TYCH WSZYSTKICH KROKÎW TWORZCY CH PRZYPADEK UYCIA #ZY PAMIÅTA SZ E KONCENTRUJEMY SIÅ NA KLIENCIE O TYM POWINIEN POMÎC KLIENTOM ZREALIZOW 3YSTEM AÁ WYZNACZONE PRZEZ NICH CELE
! ZATEM JESTEvMY AUTSAJDERAMI
=c]^OW
2OZDZIA
$RZWICZKI DLA PSA ORAZ PILOT STANOWI ELEMENTY SYSTEMU BDz TE ZNAJDUJ SIÅ WEWNTRZ NIEGO
'ROMADZENIE WYMAGAÊ
#AY PRZYPADEK UYCIA OPISUJE CO ROBI DRZWICZKI DLA PSA KIEDY !ZOR MUSI WYJwÁ NA SPACER
0RZYPADEK UYCIA KOÌCZY SIÅ KIEDY CEL WYZNACZONY PRZEZ KLIENTA ZOSTANIE ZREALIZOWANY s CZYLI W NASZYM PRZYKADZIE KIEDY !ZOR ZNAJDZIE SIÅ Z POWROTEM W DOMU PO ZAATWIENIU SWOICH POTRZEB A ANI 4ADEK ANI *ANKA NIE BÅD MUSIELI W TYM CELU WYCHODZIÁ Z ÎKA
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
4O JEST wCIEKA ALTERNATYWNA JEDNAK TAKE I ONA SUY DO ZREALIZOWANIA TEGO SAMEGO CELU CO wCIEKA GÎWNA A ZATEM NALEY ONA DO TEGO SAMEGO PRZYPADKU UYCIA
+CIK NAUKOWY PRZYPADEK UYCIA s TO TECHNIKA POZWALAJCA NA GROMADZENIE POTENCJALNYCH WYMAGAÌ PODCZAS TWORZENIA NOWEGO OPROGRAMOWANIA LUB WPROWADZANIA ZMIAN W OPROGRAMOWANIU ISTNIEJCYM +ADY PRZYPADEK UYCIA SKADA SIÅ Z JEDNEGO LUB KILKU SCENARIUSZY SUJCYCH PRZEBIEG INTERAKCJI SYSTEMU Z UYTKOWNIKIEM KOÌCOWYM B Z INNYM SYSTEMEM DZIÅKI KTÎRYM MOLIWE BÅDZIE ZREALIZOWANIE KONKRETNEGO CELU JESTEu TUTAJ
*EDEN PRZYPADEK UYCIA TRZY CZÃuCI
4ONOX Z\dcZKNOU _ÒcMSK ^\dc Md°ÄMS |7¬ ®¬-JRp ¥¸¬Al- |ªlylRy pt-J-É lÖ ® ®RAi A®Ö²Al l oR²ql AiAR®G 7¬ "ª}o ®¬-JRp ¥¸¬AlRtylt ª|oR ®-J-ylRG 7ÖJ®lR® | ®R7|ª-t ª®¬ plAi ®RAi
9MdcaS]^O dXKMdOXSO
etna Świ ja! okaz
-¸J¬ ®¬-JRp ¥¸¬Al- u¥l ulRÉ oczywist znaczenie Jq- ¬ Ru¥ R²ql ®¬-JRp ¥¸¬A |u-a- ¥¸¬ p|ªylp|ªl ª |lÔaylÖAl¥ ®-ulR®|y¬Ai ARq}ªG | 7ÖJ®lR |y -A®Ro u-t| ®¬J- y¬
0RZYPADEK U KIEDY !ZOR YCIA ROZPOCZYNA SIÅ A KOÌCZY KIZACZNIE SZCZEKAÁb DOMU PO ZAEDY PIES WRÎCI DO ATWIENIU SW POTRZEB OICH
0RZYPADEK UYCIA MUSI POMÎC 4ADKOWI I *ANCE W WYPUSZCZENI U !ZORA NA SPACER
:YMd¦^OU S 5YXSOM -¸J¬ ®¬-JRp ¥¸¬Al- u¥l ulRÉ RA¬®¬oylR
|pR²q|y¬ punkt rozpoczęcia l zakończenia |² u¥l |®|A®¬y-É |AR l u¥l l ylRÉ ª-¥yRpG p }¬ ®-¬ay-ql®¥oR p|ylRA |AR¥
DOaX°^\dXc MdcXXSU SXSMT_T¦Mc 7 PRZYPADKU DRZWICZEK DLA PSA ZEWNÅTRZNYM CZYNNIKIEM INICJUJCYM JEST !ZOR 4O WAwNIE ON ROZPOCZYNA CAY PROCES
2OZDZIA
®¬-JRp ¥¸¬Al- |®|A®¬y- lÖ y- p¥ Rp ª¬ ÔlRyl- zewnętrznego czynnika inicjującegoG p }¬ ylR y-qR¸¬ J| ¬ Ru¥ ®--ul oR | ||7-G oRJy-p |a}qylR ®RA® 7l|ÔAG u|¸R | 7¬É A|p|qªlRp ®y-oJ¥oÔARa| lÖ |®- ¬ RuRu
'ROMADZENIE WYMAGAÊ
7KQXO]SUS Z\dcZKNU_ _ÒcMSK
XSO
9MdcaS]^O dXKMdO Poniżej przedstawiliśmy przypadek użycia drzwiczek dla psa zamówionych przez Tadka i Jankę oraz trzy magnesiki reprezentujące trzy czynniki wyróżniające dobre przypadki użycia (w rzeczywistości, dla jednego z tych czynników — :YMd¦^OU S 5YXSOM Początek i Koniec — używane są dwa magnesiki). Twoim zadaniem jest wskazanie, w jakich miejscach przypadku użycia należy umieścić poszczególne magnesiki.
OaX°^\dXc MdcXXSU SXSMT_T¦Mc
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
-AGNESIK aiWIETNA OKAZJAp U UMIEwÁ W TYM MIEJSCU PRZYPADK DUE E WIST OCZY MA E KTÎR IA UYC ZNACZENIE DLA 4ADKA I *ANKI
4EN MAGNESIK UMIEwÁ W TYM PUNKCIE PRZYPADKU UYCIA KTÎRY OKREwLA WARUNEK SYGNALIZUJCY ZAKOÌCZENIE PROCESU
0ODPOWIEDz 5MIESZCZ JEDNEGO Z TYCH MAGNE ENIE SIK NAPRAWDÅ POWINNO BYÁ ÎW ATWEb JEwLI UWANIE PRZYJRZYSZ SIÅ ZAMIES ZCZONYM NA NICH OBRAZKOM
DEK #O ROZPOCZYNA PRZYPA T TO UYCIA :AZWYCZAJ JES ZCE JAKIEw ZDARZENIE ZACHOD POZA SYSTEMEM
+TO ROZPOCZYNA CAY PRZYPADEK UYCIA
JESTEu TUTAJ
%LEMENTY PRZYPADKU UYCIA
7KQXO]SUS Z\dcZKNU_ _ÒcMSK s KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS 4O JEST POCZTEK PRZYPADKU UYCIA .IC SIÅ NIE STANIE ZANIM !ZOR NIE ZACZNIE SZCZEKAÁ
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
/TO WARUNEK KOÌC REALIZACJÅ PRZYPA ZCY UYCIAb !ZOR JESDKU Z POWROTEM W DO T A DRZWICZKI DLA MU PSA S ZAMKNIÅTE
7 TYM PRZYPADKU UYCIA ZEWNÅTRZNYM CZYNNIKIEM INICJUJCYM JEST !ZOR
2OZDZIA
Y PRZYPADEK :NACZENIE MA CA K I *ANKA DE 4A Y GD UYCIA LEEÁ MOG SPOKOJNIE BÅD W ÎKU A I TAK IÁ !ZORA W STANIE WYPUwC NA SPACER
'ROMADZENIE WYMAGAÊ
Nie ma
niemądrych pytań
:$ + dK^OW Z\dcZKNOU _ÒcMSK ^Y ZY
Z\Y]^_ VS]^K U\YUa TKUSO ]c]^OW W_]S acUYXK¨ Lc NdSK¸K¸ ZYZ\KaXSO)
9$ >KU
a aS°U]dYÄMS Z\dcZKNUa :KWS°^KT TONXKU ÒO TONX¦ d ZYN]^KaYacMR MOMR Z\dcZKNUa _ÒcMSK TO]^ ^Y SÒ ZYdaKVKT¦ -S ]UYXMOX^\YaK¨ ]S° XK d\OKVSdYaKXS_ UYXU\O^XOQY MOV_ 4OÄVS ]c]^OW WK aS°MOT XSÒ TONXY Z\dOdXKMdOXSO XK Z\dcU¸KN acZ_]dMdK Z]K d NYW_ S VSMdc SVO \Kdc NKXOQY NXSK ZSO] acMRYNdS¸ ^Y L°NdSO]d ZY^\dOLYaK¸ aS°MOT XSÒ TONXOQY Z\dcZKNU_ _ÒcMSK
:$
DK^OW WT ]c]^OW L°NdSO WSO¨ ZY TONXcW Z\dcZKNU_ _ÒcMSK NVK UKÒNOQY d \OKVSdYaKXcMR Z\dOd XSOQY MOVa Mdc ^KU)
9$
.YU¸KNXSO 4OÄVS >aT ]c]^OW \OKVSd_TO ^cVUY TONXY dKNKXSO ^Y XKTZ\KaNYZYNYLXSOT L°NdSO]d ZY^\dOLYaK¸ ^cVUY TONXOQY Z\dcZKNU_ _ÒcMSK 4OÄVS TONXKU ]c]^OW acUYX_TO NdSO]S°¨ V_L ZS°^XKÄMSO dKNKº ^Y ZY^\dOLXcMR -S L°NdSO dXKMdXSO aS°MOT Z\dcZKNUa
:$
3 Z\dcZKNOU _ÒcMSK ^Y MdcXXYÄMS TKUSO ]c]^OW \OKVSd_TO a MOV_ Y]S¦QXS°MSK NKXOQY MOV_)
9$ >O\Kd T_Ò d\Yd_WSK¸OÄ 4OÄVS dKZS]dO]d
MY ]c]^OW W_]S d\YLS¨ a MOV_ d\OKVSdYaKXSK dKNKXSK ^Y XKTZ\KaNYZYNYLXSOT _dc]UK]d Z\dcZKNOU _ÒcMSK
:$
:$
9$ :\dcZKNUS _ÒcMSK WKT¦ dK dKNKXSO
>Y TO]^ UYVOTXc O^KZ Z\YMO]_ ZS]KXSK KZVSUKMTS 4_Ò XSOLKaOW YZS]dOWc a TKUS ]ZY]L XKVOÒc Z\dOKXKVSdYaK¨ Z\dcU¸KN _ÒcMSK ]c]^OW_ ^aY\dYXOQY NVK >KNUK S 4KXUS S XK TOQY ZYN]^KaSO dKU^_KVSdYaK¨ UYN
+VO Z\dcZKNOU _ÒcMSK XSO TO]^ dLc^ ]dMdOQ¸Yac .VKMdOQY XSO ZS]dOWc a XSW Y UVK]KMR aYTOW_ ]dOPYaS 1NcLc Z\dcZKNOU _ÒcMSK YZO\YaK¸ XK ZYdSYWSO ]dMdOQ¸YaYÄMS UYN_ Z\YQ\KW_ ^Y Lc¸Lc Z\dcNK^Xc ac¸¦MdXSO NVK Z\YQ\KWS]^a 4KUY QOXO\KVX¦ \OQ_¸° ZYaSXSOXOÄ Z\dcT¦¨ ÒO Z\dcZKNUS _ÒcMSK WKT¦ Lc¨ ZS]KXO Z\dc acUY\dc]^KXS_ Z\Y]^OQY MYNdSOXXOQY T°dcUK 4OÄVS _ÒcaK]d aSOV_ ^O\WSXa Z\YQ\KWS]^cMdXcMR V_L ÒK\QYX_ ^OMRXSMdXOQY ^Y d N_Ò¦ NYd¦ Z\KaNYZYNYLSOº]^aK WYÒXK Z\dcT¦¨ ÒO Z\dcZKNOU _ÒcMSK TO]^ dLc^ ]dMdOQ¸Yac Lc WQ¸ Lc¨ Z\dcNK^Xc
:$ -dc Z\dcZKNOU _ÒcMSK TO]^ ^cW
]KWcW MY NSKQ\KW Z\dcZKNU_ _ÒcMSK)
9$ 8SO Z\dcZKNUS _ÒcMSK WKT¦ dKdacMdKT
ZY]^K¨ VS]^c dNK\dOº V_L MdcXXYÄMS MRY¨ YMdcaSÄMSO WYÒXK TO dKZS]caK¨ ^KUÒO a SXXOT ZY]^KMS Y MdcW XKZS]dOWc a .YNK^U_ .SKQ\KWc Z\dcZKNUa _ÒcMSK ^Y ]ZY]L aSd_KVXOQY Z\dON]^KaSOXSK Z\dcZKNUa _ÒcMSK VOMd Wc dKTWYaKVSÄWc ]S° T_Ò XK]dcW a¸K]XcW NSKQ\KWOW _UKd_T¦McW NdSK¸KXSO ]c]^OW_ TOÄVS Y ^cW dKZYWXSK¸OÄ ^Y dKT\dcT XK ]^\YX° #! 8SO Z\dOTW_T ]S° TONXKU NY dKQKNXSOº daS¦dKXcMR d NSKQ\KWKWS Z\dcZKNUa _ÒcMSK a\MSWc TO]dMdO a \YdNdSKVO
A TKUS dK^OW ]ZY]L WKW Z\dOU]d^K¸MS¨ Z\dcZKNOU _ÒcMSK a UYN Z\YQ\KW_)
9$
4ONXKU MOVOW ^aY\dOXSK Z\dcZKNUa _ÒcMSK XSO TO]^ NY]^K\MdKXSO ]dMdOQ¸YacMR SXPY\WKMTS XK ^OWK^ NdSK¸KXSK UYN_ A Z\KU^cMO dKZOaXO L°NdSO]d TO]dMdO W_]SK¸ ]S° dK]^KXYaS¨ XKN ^cW TKU XK ZYN]^KaSO U\YUa ^aY\d¦McMR Z\dcZKNOU _ÒcMSK XKZS]K¨ NdSK¸KT¦Mc UYN Z\YQ\KW_
:$ =UY\Y Z\dcZKNOU _ÒcMSK
XSO ZYWKQK WS a XKZS]KXS_ UYN_ Z\YQ\KW_ ^Y ZY MY a YQVO QY ^aY\dc¨) .VKMdOQY WKW ^\KMS¨ XK XSOQY ]aT MOXXc MdK])
9$
:\dcZKNUS _ÒcMSK ZYWKQKT¦ -S a ZS]KXS_ UYN_ TONXKU XSO ]¦ XK ^cVO NYU¸KNXO Lc dKaSO\K¨ ]dMdOQ¸c daS¦dKXO d ]KWcW UYNOW 8K Z\dcU¸KN QNcLcÄ XSO XKZS]K¸ Z\dcZKNU_ _ÒcMSK ^Y dKZOaXO XSQNc Lc -S XSO Z\dc]d¸Y NY Q¸Yac ÒO +dY\ WYÒO dKWK\_NdS¨ QNdSOÄ XK NaY\dO L¦NÐ ÒO N\daSMdUS ZYaSXXc ]S° dKWcUK¨ K_^YWK^cMdXSO A]dc]^USO ^O SXPY\WKMTO _dc]UK¸OÄ NdS°US ZS]KXS_ Z\dcZKNU_ _ÒcMSK :KWS°^KT XSQNc XSO L°NdSO]d ZS]K¨ a]ZKXSK¸OQY YZ\YQ\KWYaKXSK TOÄVS XSO dNY¸K]d NY]^K\Mdc¨ KZVSUKMTS U^\O \YLS¦ ^Y MdOQY ]YLSO ÒcMd¦ UVSOXMS :\dcZKNUS _ÒcMSK ]¦ XK\d°NdSOW U^\O WK -S a ^cW ZYWM NYZSO\Y USONc d\Yd_WSO]d UVSOX^K L°NdSO]d QY^a NY XKZS]KXSK UYN_ SWZVOWOX^_T¦MOQY ]c]^OW NdSK¸KT¦Mc dQYNXSO d Z\dcZKNUKWS _ÒcMSK
JESTEu TUTAJ
#ZY OPISAEu WSZYSTKIE MOLIWOuCI SYSTEMU
:Y\aXKT acWKQKXSK d Z\dcZKNUKWS _ÒcMSK | ¬AiA®- ª|®¬tR² a¥Ö ª¬u-a-Í |-® J|7¬ ®¬-JRp ¥¸¬Al- "R-® oRJy-p u¥l® lÖ A|\yÔÉG lÖayÔÉ |y|ªylR | ª¬u-a-yl- ¬ Ru¥ l ¥RªylÉ lÖG ¸R |7Rou¥oÔ |yR ª®¬ p|G A| ¬ Ru u¥l |7lÉ ªt-²ylR J| Ra| ®¬J- lÖ ®¬-JRp ¥¸¬Al-F
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 6S]^K acWKQKº 1\XK U\Ka°NÐ Y^aY\_ N\daSMdOU W_]S Lc¨ _WSO]dMdYXK MY XKTWXSOT XK ac]YUYÄMS MOX^cWO^\a 8KMSÄXS°MSO Z\dcMS]U_ XK ZSVYMSO ZYaYN_TO Y^aY\dOXSO N\daSMdOU TOÄVS ^O ]¦ dKWUXS°^O V_L SMR dKWUXS°MSO TOÄVS ]¦ Y^aK\^O :Y Y^aY\dOXS_ N\daSMdOU ZYaSXXc YXO dY]^K¨ K_^YWK^cMdXSO dKWUXS°^O TOÄVS aMdOÄXSOT XSO dY]^KX¦ dKWUXS°^O Z\dOd _Òc^UYaXSUK
/TO NASZA LISTA WYMAGAÌ SPORZDZONA NA PODSTAWIE ROZMOWY Z 4ADKIEM I *ANKb
bA TU ZAPISALIwMY SPO POWINNY DZIAAÁ TWORZO SÎB W JAKI NE DRZWICZKI DLA PSA
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS
-dc MdOQYÄ ^_ L\KU_TO) "R-® |ªlylRyR² ®R-y-ql®|ª-É ®¬-JRp ¥¸¬Al- l ¥RªylÉ lÖG A®¬ |G A| ¬ Ru |7lG |J|ªl-J- ª¬u-a-yl|u
2OZDZIA
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
'ROMADZENIE WYMAGAÊ
DKY]^\d Y¸aOU -dc >aYTO acWKQKXSK YLOTW_T¦ a]dc]^UY) :YXSÒOT d VOaOT ]^\YXc Z\dON]^KaSVSÄWc a]dc]^USO YZO\KMTO acUYXcaKXO Z\dOd N\daSMdUS NVK Z]K ]UYZSYaKXO LOdZYÄ\ONXSY d XK]dOQY Z\dcZKNU_ _ÒcMSK dKZ\OdOX^YaKXOQY XK ]^\YXSO >aYSW dKNKXSOW TO]^ a]UKdKXSO acWKQKº YNZYaSKNKT¦McMR ZY]dMdOQVXcW Z_XU^YW Z\dcZKNU_ _ÒcMSK S dKZS]KXSO X_WO\_ acWKQKXSK a Z_]^OT UYV_WXSO d Z\KaOT ]^\YXc Z_XU^_ 4OÄVS Z_XU^ Z\dcZKNU_ _ÒcMSK XSO dW_]dK XK] NY acUYXcaKXSK ÒKNXcMR MdcXXYÄMS ^Y YLYU XSOQY aZS]d XN ]U\^ YN$ iXSO NY^cMdcp PRZEZ NAS /TO TRZY ZANOTOWANE KROKÎW Z DY +A WYMAGANIAb Z SKOJARZYÁ PRZYPADKU UYCIA MOES H Z DOWOLNYM Z NIC
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY
.\daSMdUS NVK Z]K NVK >KNU K S 4KXUS IIIIIIIIIII
XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK
IIIIIIIIIII
>KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO
IIIIIIIIIII
.\daSMdUS NVK Z]K Y^aSO\KT¦ ]S°
IIIIIIIIIII
+dY\ acMRYNdS XK dOaX¦^\d
IIIIIIIIIII
+dY\ dK¸K^aSK ]aYTO ZY^\dOLc
IIIIIIIIIII
.\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO
IIIIIIIIIII
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY
IIIIIIIIIII
6S]^K acWKQKº
aO\]TK
1\XK U\Ka°NÐ Y^aY\_ N\d aSMdOU W_]S Lc¨ _WSO]dMdYXK MY XKTWXSOT XK ac]YUYÄMS MOX^cWO^\a 8KMSÄXS°MSO Z\dcMS]U_ XK ZSVYMSO ZYaYN_TO Y^aY\dOXSO N\daSMdOU TOÄVS ^O ]¦ dKWUXS °^O V_L SMR dKWUXS°MSO TOÄVS ]¦ Y^aK\^O :Y Y^aY\dOXS_ N\daSMdOU ZYaSXXc YXO dY]^K¨ K_^YWK^cMdXSO dKWUXS°^O TOÄVS aMdOÄXSOT XSO dY]^KX¦ dKWUXS°^O Z\dOd _Òc^UYaXSUK
NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K
IIIIIIIIIII
dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO
IIIIIIIIIII
.\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_
IIIIIIIIIII
! +dY\ a\KMK d ZYa\Y^OW
IIIIIIIIIII
" .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
IIIIIIIIIII
7 KADYM Z PUSTYCH MIEJSC W TEJ KOLUMNIE ZAPISZ LUB ND
-dc _NK¸Y -S ]S° dXKVOШ TKUSOÄ U\YUS Z\dcZKNU_ _ÒcMSK U^\cMR XSO ]UYTK\dc¸OÄ d ÒKNXcW d acWKQKº) 4OÄVS _aKÒK]d ÒO L°N¦ -S ZY^\dOLXO TKUSOUYVaSOU NYNK^UYaO acWKQKXSK ^Y ]PY\W_¸_T TO S dKZS]d a ZYXSÒ]dcMR Z_]^cMR aSO\]dKMR$
JESTEu TUTAJ
$OCIEKLIWE UMYSY CHC WIEDZIE¿
DKY]^\d Y¸aOU -dc >aYTO acWKQKXSK YLOTW_T¦ a]dc]^UY) :YXSÒOT d VOaOT ]^\YXc Z\dON]^KaSVSÄWc a]dc]^USO YZO\KMTO acUYXcaKXO Z\dOd N\daSMdUS NVK Z]K ]UYZSYaKXO LOdZYÄ\ONXSY d XK]dOQY Z\dcZKNU_ _ÒcMSK dKZ\OdOX^YaKXOQY XK ]^\YXSO >aYSW dKNKXSOW TO]^ a]UKdKXSO acWKQKº YNZYaSKNKT¦McMR ZY]dMdOQVXcW Z_XU^YW Z\dcZKNU_ _ÒcMSK S dKZS]KXSO X_WO\_ acWKQKXSK a Z_]^OT UYV_WXSO d Z\KaOT ]^\YXc Z_XU^_ 4OÄVS Z_XU^ Z\dcZKNU_ _ÒcMSK XSO dW_]dK XK] NY acUYXcaKXSK ÒKNXcMR MdcXXYÄMS ^Y YLYU XSOQY aZS]d XN ]U\^ YN$ iXSO NY^cMdcp
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY
XN IIIIIIIIIII
7IELE ZDARZEÌ ZA W SYSTEMIE NIE CHODZCYCH ZM DO PODEJMOWANIA USZA NAS JAKICHKOLWIEK DZIAAÌ
XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK
XN IIIIIIIIIII
>KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO
IIIIIIIIIII
.\daSMdUS NVK Z]K Y^aSO\KT¦ ]S°
IIIIIIIIIII
+dY\ acMRYNdS XK dOaX¦^\d
IIIIIIIIIII
+dY\ dK¸K^aSK ]aYTO ZY^\dOLc
XN IIIIIIIIIII
.\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO
IIIIIIIIIII
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY
XN IIIIIIIIIII
aNDp GDY NACIwNIÅCIE "YÁ MOE ZAPISAEw TU EZ 4ADKA LUB *ANKÅ PRZ CIE PRZYCISKU NA PILO SIMY OBSUGIWAÁb ALE NIE JEST CZYMw CO MU IA JEST POPRAWN GAN TAKE WPISANIE WYMA PILOTA 4ADEK I *ANKA ODPOWIEDZI GDY BEZ YCISKU PRZ NIE MOGLIBY NACISNÁ
.IE ROZUMIESZ DLACZEGO !ZOR NIE W STANIE WYJwÁ NA SPACER GDYB BYBY Y NIE MIAY ODPOWIEDNIEJ WIELKOwC DRZWICZKI I
NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K
XN IIIIIIIIIII
dXYa_ >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO
IIIIIIIIIII
.\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_
IIIIIIIIIII
! +dY\ a\KMK d ZYa\Y^OW
IIIIIIIIIII
" .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
IIIIIIIIIII
0O OKREwLENIU WYMAGANIA DLA wCIEKI GÎWNEJ PODANIE WYMAGAÌ DLA wCIEKI ALTERNATYWNEJ NIE POWINNO PRZYSPORZYÁ #I WIÅKSZYCH PROBLEMÎW
-dc _NK¸Y -S ]S° dXKVOШ TKUSOÄ U\YUS Z\dcZKNU_ _ÒcMSK U^\cMR XSO ]UYTK\dc¸OÄ d ÒKNXcW d acWKQKº) 4OÄVS _aKÒK]d ÒO L°N¦ -S ZY^\dOLXO TKUSOUYVaSOU NYNK^UYaO acWKQKXSK ^Y ]PY\W_¸_T TO S dKZS]d a ZYXSÒ]dcMR Z_]^cMR aSO\]dKMR$ 8SO XK]dO acWKQKXSK YLOTW_T¦ a]dc]^UY MY ]c]^OW W_]S \YLS¨ -dc dK^OW TO]^OÄWc QY^YaS Lc dKMd¦¨ T_Ò ZS]K¨ UYN SWZVOWOX^_T¦Mc ^O acWKQKXSK)
2OZDZIA
'ROMADZENIE WYMAGAÊ
-dc a UYºM_ WYÒOWc Z\dc]^¦ZS¨ NY ZS]KXSK UYN_) ¬|y¥oÔA ®¬-JplRu ¥¸¬Al- |-® ª¬u-a-yl-ulG oR R² o¥¸ a| |ª¬ J| y-l-ylp|J¥G p }¬ na pewno ®-J|ª|ql "-Jp- l -ypÖ +ªR¬\lp¥ou¬ oR®A®R -® y-®R ª¬u-a-yl- l -ªJ´u¬G o-pl p|J 7ÖJ®lR® u¥l-t y-l-É
4O JEST COw DLA $ARKA I SPECÎW OD SPRZÅTUb 4O WYMAGANIE NIE JEST ZWIZANE Z JAKIMKOLWIEK KODEM
4O WYMAGANIE 4ADEK I *ANKA DODALI PODCZAS ROZMOWYb -USIMY DODAÁ KOD KTÎRY ZAJMIE SIÅ AUTOMATYCZNYM ZAMYKANIEM DRZWICZEK
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 6S]^K acWKQKº 1\XK U\Ka°NÐ Y^aY\_ N\daSMdOU W_]S Lc¨ _WSO]dMdYXK MY XKTWXSOT XK ac]YUYÄMS MOX^cWO^\a 8KMSÄXS°MSO Z\dcMS]U_ XK ZSVYMSO ZYaYN_TO Y^aY\dOXSO N\daSMdOU TOÄVS ^O ]¦ dKWUXS°^O V_L SMR dKWUXS°MSO TOÄVS ]¦ Y^aK\^O :Y Y^aY\dOXS_ N\daSMdOU ZYaSXXc YXO dY]^K¨ K_^YWK^cMdXSO dKWUXS°^O TOÄVS aMdOÄXSOT XSO dY]^KX¦ dKWUXS°^O Z\dOd _Òc^UYaXSUK
*U NAPISALIwMY KOD KTÎRY ZAJMIE SIÅ TYM WYMAGANIEM
*ESTEvMY NIEZWYKLE ZAINTERESOWANI TYMI NOWYMI DRZWICZKAMI DLA !ZORA "ARDZO NAM SI» PODOBA E POMYvLELIvCIE O TYM E !ZOR MOE ZOSTA· NA DWORZE I ZADBALIvCIE O ROZWIZANIE TEGO PROBLEMU
JESTEu TUTAJ
$ODANIE LICZNIKA CZASU DO ZAMYKANIA DRZWICZEK
+_^YWK^cMdXO dKWcUKXSO N\daSMdOU NVK Z]K class Remote { press button() }
RJ¬yR ª¬u-a-ylRG o-plR oR®A®R u¥lu¬ ||a-u|ª-ÉG oR ®ªlÔ®-yR ® -¥ |u- ¬A®y¬u ®-u¬p-ylRu J®ªlA®Rp | ¥t¬ylÖAl¥ RªyRa| A®-¥ |J Aiªlql lAi | ª|®Ryl- '}Éu¬ ®- Ru J| y-®Ro pq-¬ Remote l y-l®u¬ ylR®7ÖJy¬ p|JF import java.util.Timer; import java.util.TimerTask; public class Remote {
Y a¸KÄXSO ^Y NdSK¸KXSO ^O]^_TO XYaK aO\]TK ]cW_VK^Y\K DogDoorSimulator -RMOWc WSO¨ ZOaXYĨ ÒO XYaO N\daSMdUS NdSK¸KT¦ NYU¸KNXSO ^KU TKU ^OQY MRMSOVS >KNOU S 4KXUK
KV^O\XK^caXOT ^KUÒO _adQV°NXSYXOT a Z\dcZKNU_ _ÒcMSK)
3 ^Y TO]^ LK\NdY NYL\O Zc^KXSO :\dO^O]^_TWc ^° aO\]T° N\daSMdOU K ZÐXSOT dK]^KXYaSWc ]S° XKN YNZYaSONdS¦
JESTEu TUTAJ
*AK TO DZIAA
>O]^ aO\]TK ®- -ªJ®lÉG A®¬ y-®- AlÖ¸p- -A- J-t- ®-ulR®|yR R\Rp ¬ ®R R ¥ou¬ y-®R y|ªR l |-ªl|yR J®ªlA®pl Jq- -
=UYWZSV_T a]dc]^USO ZVSUS d UYNOW Ð\N¸YacW
class DogDoorSim { } class DogDoor.YQ.YY\TK`K Sim { } class DogDoorKNOU V_L 4KXUK ]¸c]d¦
:AUWA E WRAZ Z OTWORZENIEM SIÅ DRZWICZEK W TYM PUNKCIE wCIEKI ALTERNATYWNEJ POWRACAMY DO wCIEKI GÎWNEJ
ZYXYaXSO ]dMdOUKXSO +dY\K
.\daSMdUS Y^aSO\KT¦ ]S°
>KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO
ZYXYaXSO
JESTEu TUTAJ
4ESTY uCIEKI ALTERNATYWNEJ
7KQXO]SUS d UYNOW Nadszedł czas, by zaktualizować symulator, jednak tym razem napisanie stosownego kodu będzie Twoim zadaniem. Poniżej przedstawiliśmy dotychczasową postać kodu symulatora.
class DogDoorSim { }
.YQ.YY\=SW_VK^Y\TK`K
Twoim zadaniem jest dopasowanie magnesików z kodem, widocznych u dołu strony, i umieszczenie ich w odpowiednich miejscach kodu. Jeśli będziesz mieć jakieś problemy, przeanalizuj diagram znajdujący się na dwóch poprzednich stronach, by dowiedzieć się, jakie czynności są wykonywane w poszczególnych krokach na ścieżce alternatywnej. A… i jest jeden kruczek. Niestety, z lodówki spadły wszystkie magnesiki z kropkami, średnikami i nawiasami; będziesz zatem musiał dodać je samemu, wszędzie tam, gdzie będą potrzebne. public class DogDoorSimulator { public static void main(String[] args) { DogDoor door = new DogDoor(); Remote remote = new Remote(door); ___________________________________________________________ 4O WAwNIE W TYM ___________________________________________________________ NA MIEJSCU ROZPOCZY SIÅ wCIEKA ALTERNATYWNA
System.out.println(”\nAzor wyszedł na zewnątrz...”); System.out.println(”\nAzor załatwił swoje potrzeby...”); try { #HCEMY BY WYKONYWANI E PROGRAMU Thread.currentThread().________(10000); ZOSTAO WSTRZYMANE CO NA AUTOMATYCZNE ZAM POZWOLI } catch (InterruptedException e) { } KNIÅCIE DRZWICZEK DLA PSA
System.out.println(”...ale Azor utknął na zewnątrz!”); _________________________________________________________ _________________________________________________________ _________________________________________________________ System.out.println(”\nAzor jest z powrotem w domu...”); }
7 TYM MIEJSCU wCIEKA ALTERNATYWNA PONOWNIE CZY SIÅ ZE wCIEK GÎWN
}
System.out.println
pressButton pressBu pressButton
System Syste
System out println out println Syste
t i tln System.out.println
/TO KILKA RÎNYCH KOMUNIKATÎW KTÎRE MOESZ WYwWIETLAÁ
”Azor drapie drzwi.”
2OZDZIA
remote remote remote mo re te
4O S METODY POZWALAJCE NA KORZYSTANIE Z PILOTA
wait waitFor slee
4O S METODY POZWALAJCE NA WYKONYWANIE OPERACJI NA WTKACH *AVY
”\nAzor zaczyna szczekać...” ”...zatem Tadek sięga po pilota.” ą p ”...zatem Janka sięg
'ROMADZENIE WYMAGAÊ
>O]^ aO\]TK '|ª-J´ u|J¬\lp-AoR J| ª|oRo ªRol qlp¥ DogDoorSimulator. javaG - y- ÖylR a| p|ulq¥o "R-® u|¸R® o¥¸ ®R R |ª-É J®l-t-yl-q Ry- ¬ªyRo ²AlR¸pl y-®Ra| ®¬-Jp¥ ¥¸¬Al-
Tik! Tak! $RZWICZKI OTWIERAJ SIÅ I !ZOR WYCHODZI ZAATWIÁ SWOJE POTRZEBY
!LE !ZOR ZACZYNA GONIÁ OWADY I DRZWICZKI ZAMYKAJ SIÅ AUTOMATYCZNIE KIEDY JESZCZE JEST NA ZEWNTRZ !ZOR SZCZEKA BY DO DOMU ZATEM WEJwÁ SIÅGA PO PILOTA *ANKA DO DRZWICZEKb
Tik!
bI !ZOR WRACA DO KLIMATYZOWANEGO WNÅTRZA
Tak! KI ZAMYKAJ 0O CHWILI DRZWICZIEMOLIWIAJC UN IE WN NO SIÅ PO IOM I RÎNYM KRÎLIKOM GRYZON SIÅ DO IE AN ST OWADOM DO DOMU
JESTEu TUTAJ
$OKOÊCZENIE SYMULATORA
7KQXO]SUS d UYNOW s 794/ :OMRK ÃMSOÒUK Q¸aXK >OMR acMRYNdS XK dOaX¦^\d .\daSMdUS dKWcUKT¦ ]S° K_^YWK^cMdXSO >OMR dK¸K^aSK ]aYTO ZY^\dOLc 4KXOU XKMS]UK Z\dcMS]U XK ZSVYMSO .\daSMdUS Y^aSO\KT¦ ]S° >OMR aMRYNdS NY NYW_ ! .\daSMdUS dKWcUKT¦ ]S° K_^YWK^cMdXSO
OMR +U^Y\ N\_QYZVKXYac$ 4KXOU AK\_XUS a]^°ZXO$ .\daSMdUS NVK Z]K ]¦ Y^aK\^O Lc >OMR WQ¸ a NYaYVXOT MRaSVS acTĨ XK dOaX¦^\d -OV$ >OMR dK¸K^aSK ]aYTO ZY^\dOLc S a\KMK NY Ä\YNUK TONXKU LOd L\_NdOXSK NYW_ dKL¸YMYXcWS ¸KZKWS
>OMR L\_NdS ]YLSO ¸KZc L¸Y^OW 4KXOU MdcÄMS ¸KZc >OMRK
5YJ TYCH MAGNESIKÎW DO OZNACZANIA WARUNKÎW ZAKOÌCZENIA PRZYPADKU UYCIA 7 JAKI SPOSÎB OKREwLISZ KIEDY 4WÎJ PRZYPADEK UYCIA ZOSTA ZAKOÌCZONY
7 TYM PRZYPADKU UYLIwMY !ZORA DO OZNACZENIA ZEWNÅTRZNEGO CZYNNIKA INICJUJCEGO PRZYPADEK UYCIA CZYLI ZDARZENIA OD KTÎREGO CAY PRZYPADEK UYCIA SIÅ ROZPOCZYNA
JESTEu TUTAJ
-AGNESIKI PRZYPADKÌW UYCIA q 2OZWIZANIA
7KQXO]SUS Z\dcZKNUa _ÒcMSK s KNUK S 4KXUS aO\]TK 7 RZECZYWISTOwCI W NOWYM PRZYPADKU UYCIA CHODZI NAM O TO BY POKAZAÁ E MOE BYÁ WYKONANY KROK LUB KROK b
bA NASTÅPNIE KROK LUB KROK
4UTAJ MOE BYÁ WYKONANY KROK LUB KROK b
OK bA TU KR B LU
4KU YLOMXSO NdSK¸KT¦ N\daSMdUS +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK =c]^OW \YdZYdXKaKXSK NÐaS°Ua i]¸c]dcp ]dMdOUKXSO +dY\K >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO =c]^OW \YdZYdXKaKXSK NÐaS°Ua ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ ]dMdOUKXSO +dY\K dXYa_ =c]^OW \YdZYdXKaKXSK NÐaS°Ua i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO =c]^OW \YdZYdXKaKXSK NÐaS°Ua ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦ JESTEu TUTAJ
:APISZ TO W DOWOLNEJ POSTACI
:\dcZKNUS _ÒcMSK W_]d¦ Lc¨ d\Yd_WSK¸O S _Òc^OMdXO Z\dONO a]dc]^USW NVK -SOLSO R²ql u-® |7qRu¬ ®R ®|®¥ulRylRu ®¬a| |ª-yRa| ®¬-Jp¥ ¥¸¬Al-G | | | ¥ ®-l® a| ª o-pl² lyy¬ |}7 ylRoÔ R pl }¸y¬Ai ||7}ª ®-l¬ª-yl- ®¬-Jp}ª ¥¸¬Al-G oRJy-p y-oª-¸ylRo®R oR |G 7¬ 7¬t |y |ou|ª-qy¬ Jq- lR7lRG "ª|oRa| ®R|t¥ |-® |}7G p }¬u u¥l® a| ª¬ t¥u-A®¬É }7¥ou¬ ®- Ru ®-l-É ®¬-JRp ¥¸¬Al- ®R |y¬ ` ª 7-J®lRo ®Ro®¬ ¬ l ®|®¥ul-t¬ |}7 4ERAZ DODALIwMY NAGÎWEK INFORMUJCY E WSZYSTKIE KROKI UMIESZCZONE W LEWEJ KOLUMNIE NALE DO wCIEKI GÎWNEJ
*EwLI ISTNIEJE TYLKO JEDEN KROK TO PODCZAS REALIZACJI SEKWENCJI CZYNNOwCI OPISANYCH PRZEZ PRZYPADEK UYCIA KROK TEN ZAWSZE ZOSTANIE WYKONANY +ROKI PODRZÅDNE S OPCJONALNEb -OESZ ICH UYÁ CHOÁ NIE JEST TO WCALE WYMAGANE 0OMIMO TO UMIEwCILIwMY JE W LEWEJ KOLUMNIE GDY NIE STANOWI ONE ZAMIENNIKÎW DLA INNYCH KROKÎW wCIEKI GÎWNEJ .IEZALENIE OD TEGO W JAKI SPOSÎB ZOSTANIE WYKONANY PRZYPADEK UYCIA ZAWSZE JEGO REALIZACJA ZAKOÌCZY SIÅ NA KROKU NALECYM DO wCIEKI GÎWNEJ
2OZDZIA
7SZYSTKIE KROKI KTÎRE MOG ZOSTAÁ WYKONANE ZAMIAST JAKICHw KROKÎW wCIEKI GÎWNEJ UMIEwCILIwMY Z PRAWE J STRONY
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS ÃMSOÒUS KV^O\XK^caXO
ÃMSOÒUK Q¸aXK +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK
=c]^OW \YdZYdXKaKXSK NÐaS°Ua i]¸c]dcp ]dMdOUKXSO +dY\K =c]^OW \YdZYdXKaKXSK NÐaS°Ua ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU
>KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U T NIECO BARDZIEJ 4EN SPOSÎB ZAPISU JES MOEMY XK ZSVYMSO IAY ZUM ZRO I PRZEJRZYSTY KROK WYKONAÁ KROK ,5" " KROK .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° A NASTÅPNIE KROK ,5 +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ =c]^OW \YdZYdXKaKXSK ]dMdOUKXSO +dY\K dXYa_ NÐaS°Ua i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO =c]^OW \YdZYdXKaKXSK >KNOU V_L 4KXUK XKMS]UKT¦ NÐaS°Ua ac]c¸K Ò¦NKXSO Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ Y^aY\dOXSK N\daSMdOU ! +dY\ a\KMK d ZYa\Y^OW +ROKI PRZEDSTAWIONE Z PRAWEJ STRO KROK ORAZ 0ODCZAS REALI NY MOG ZASTPIÁ ZACJ " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦ OPISYWANEGO PRZEZ PRZYPADEK UYC I PROCESU WYKONAÁ TYLKO JEDEN Z WARIANTÎW IA MONA Z LEWEJ ,5" KROK ZAPISANY Z PRAW KROK ZAPISANY EJ STRONY
*EvLI NAPRAWD» MOEMY TWORZY· PRZYPADKI UYCIA W DOWOLNY SPOSÄB TO CZY MOEMY ZMODYFIKOWA· JE W TAKI SPOSÄB BY SYSTEM ROZPOZNAWANIA SZCZEKANIA STA SI» ELEMENTEM GÄWNEJ vCIEKI "O PRZECIE CHCEMY BY W WI»KSZOvCI PRZYPADKÄW SYSTEM DZIAA WAvNIE W TAKI SPOSÄB NIEPRAWDA
7YMAGANIA ULEGAJ ZMIANOM
.Y]UYXK¸c ZYWc]¸ ÛAlR¸p- at}ªy- RR®Ry ¥oR Ry |}7 J®l-t-yl- ¬ Ru¥G o-pl u- 7¬É R-ql®|ª-y¬ ª ªlÖp®|²Al ®¬-Jp}ª "-JRp l -yp- ®-RªyR ¸¬A®¬ql7¬ |7lRG 7¬ ¬ Ru |®|®y-ª-yl- J´ªlÖp¥ | ªlR-t J®ªlA®pl Jq- ®|- A®Ö²AlRo yl¸ |yl ®¬ ¥¸¬Al¥ lq| -G Jq- Ra| R¸ -plR ®u|J¬\lp|ª-ylR ²AlR¸pl at}ªyRo oR J|7¬u |®ªlÔ®-ylRuF
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS
4ERAZ KROKI ZWIZANE Z WYKORZYSTANIEM SYSTEMU ROZPOZNAWANIA DzWIÅKU ZOSTAY USUNIÅTE ZE wCIEKI ALTERNATYWNEJ I DOCZONE DO wCIEKI GÎWNEJ
ÒUK Q¸aXK ÃMSOÒUS KV^O\XK^caXO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO >KNOU V_L 4KXUK ]¸c]d¦ acZ_ÄMSVS QY XK ]ZKMO\ ÒO +dY\ ]dMdOUK =c]^OW \YdZYdXKaKXSK NÐaS°Ua >KNOU V_L 4KXUK XKMS]UKT¦ i]¸c]dcp ]dMdOUKXSO +dY\K Z\dcMS]U XK ZSVYMSO =c]^OW \YdZYdXKaKXSK NÐaS°Ua ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° /BECNIE 4ADEK I *ANKA BÅD UYW PILOTA RACZEJ SPORADYCZNIE DLATE ALI GO +dY\ acMRYNdS XK dOaX¦^\d UMIESZCZENIE WSZYSTKICH KROKÎW ZWIZANYCH Z PILOTEM W wCIEKAC H +dY\ dK¸K^aSK ]aYTO ZY^\dOLc ALTERNATYWNYCH BÅDZIE PRAWIDOW YM ROZWIZANIEM .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ =c]^OW \YdZYdXKaKXSK >KNOU V_L 4KXUK ]¸c]d¦ NÐaS°Ua i]¸c]dcp ]dMdOUKXSO ]dMdOUKXSO +dY\K dXYa_ +dY\K ZYXYaXSO =c]^OW \YdZYdXKaKXSK NÐaS°Ua >KNOU V_L 4KXUK XKMS]UKT¦ ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦ JESTEu TUTAJ
$OCIERAMY DO CELU
9N ]^K\^_ NY WO^c$ TONOX ]MOXK\S_]d #ª®aqÖJyl-oÔA ª®¬ plR ²AlR¸pl -q Ry- ¬ªyR ®-ulR®A®|yR ª y|ª¬u ®¬-Jp¥ ¥¸¬Al-G l ylRoR ªlRqR ||7}ª y- ª¬¥®A®RylR ®|- y- -AR l }´ylRo®R ª¥®A®RylR a| J| J|u¥ |yl¸Ro ®RJ -ªlql²u¬ oRJRy ® u|¸qlª¬Ai ARy-l¥®¬
7YKORZYSTAJMY TÅ ALTERNATYWN I PO wCIEKÅ 4ADKOWI I *ANCE ZWÎLMY DRZWICZKI PRZY UOTWORZYÁ YCIU PILOTA
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS 7SZYSTKIE MOLIWE wCIEKI REALIZACJI TEGO PRZYPADKU UYCIA ROZPOCZYNAJ SIÅ OD KROKU
0ORUSZANIE SIÅ ZGODNIE Z KOLEJNOwCI WYZNACZAN PRZEZ STRZAKI POZWALA NA PRZEJwCIE DANEGO PRZYPADKU UYCIA KONKRETN wCIEK 4AKA wCIEKA JEST NAZYWANA SCENARIUSZEM 7 JEDNYM PRZYPADKU UYCIA MONA ZAZWYCZAJ WYRÎNIÁ KILKA SCENARIUSZY
ÃMSOÒUK Q¸aXK ÃMSOÒUS KV^O\XK^caXO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ =c]^OW \YdZYdXKaKXSK NÐaS°Ua >KNOU V_L 4KXUK ]¸c]d¦ i]¸c]dcp ]dMdOUKXSO +dY\K ÒO +dY\ ]dMdOUK =c]^OW \YdZYdXKaKXSK NÐaS°Ua >KNOU V_L 4KXUK XKMS]UKT¦ ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d 7 TYM PRZYPADKU EKÅ ZASTOSUJEMY TÅ OTO wCIJÅ UAC SYT C UJ ENT REZ +dY\ dK¸K^aSK ]aYTO ZY^\dOLc REP NA W KTÎREJ !ZOR POZOSTAJE CZNYM .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO ZEWNTRZ PO AUTOMATY ZAMKNIÅCIU DRZWICZEK +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ =c]^OW \YdZYdXKaKXSK >KNOU V_L 4KXUK ]¸c]d¦ NÐaS°Ua i]¸c]dcp ]dMdOUKXSO ]dMdOUKXSO +dY\K dXYa_ +dY\K ZYXYaXSO =c]^OW \YdZYdXKaKXSK >KNOU V_L 4KXUK XKMS]UKT¦ NÐaS°Ua ac]c¸K Ò¦NKXSO Z\dcMS]U XK ZSVYMSO Y^aY\dOXSK N\daSMdOU wCIEKÅ .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ 4AKE TERAZ ZASTOSUJEMY4ADEK I *ANKA ALTERNATYWN W KTÎREJ OTWIERAJ DRZWICZKI PILOTEM ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
2OZDZIA
2EALIZACJA PRZYPADKU UYCIA ZAWS ZAKOÌCZY SIÅ NA KROKU s !ZOR ZE ZAWSZE BEZPIECZNIE WRÎCI DO DOM U
7YMAGANIA ULEGAJ ZMIANOM
Nie ma
niemądrych pytań
:$ KNOU V_L 4KXUK _]¸c]d¦ QY S Y^aY\d¦ N\daSMdUS K N\_QK ]c^_KMT° a U^\OT N\daSMdUS K_^YWK^cMdXSO Y^aY\dc ]c]^OW \YdZYdXKaKXSK ]dMdOUKXSK 4ONXKU ]c]^OW TO]^ dKZ\YTOU^YaKXc a ^KUS ]ZY]L SÒ WYÒO dY]^K¨ acUYXKXK ^cVUY TONXK ÄMSOÒUK MdcVS N\daSMdUS NVK Z]K dY]^KX¦ Y^aY\dYXO KVLY Z\dc _ÒcMS_ ZSVY^K KVLY Z\dOd ]c]^OW \YdZYdXKaKXSK NÐaS°Ua VOMd XSQNc Z\dOd YLK ^O dNK\dOXSK TONXYMdOÄXSO
:$
-dc a TONXcW Z\dcZKNU_ _ÒcMSK WYÒO Lc¨ aS°MOT XSÒ TONXK ÄMSOÒUK KV^O\XK^caXK)
9$
9MdcaSÄMSO A TONXcW Z\dcZKNU_ _ÒcMSK WYÒO Lc¨ USVUK ÄMSOÒOU KV^O\XK^caXcMR _NY]^°ZXSKT¦McMR NYNK^UYaO U\YUS Y\Kd aSOVO \ÒXcMR ÄMSOÒOU YN aK\_XU_ \YdZYMd°MSK NY aK\_XU_ dKUYºMdOXSK 7YÒO ^KUÒO S]^XSO¨ ÄMSOÒUK KV^O\XK^caXK Z\YaKNd¦MK NY ]dcL]dOQY dKUYºMdOXSK Z\dcZKNU_ _ÒcMSKj 4ONXKU a Z\dcZKNU_ N\daSMdOU NVK Z]K dKWaSYXcMR Z\dOd >KNUK S 4KXU° XSO W_]SWc _MSOUK¨ ]S° KÒ NY ^KU d¸YÒYXcMR \YdaS¦dKº
9$
9a]dOW A XK]dcW Z\dcZKNU_ _ÒcMSK U\YUS Y\Kd ^aY\d¦ ÄMSOÒU° KV^O\XK^caX¦ =¦ ^Y U\YUS NYNK^UYaO U^\O ]c]^OW WYÒO acUYXK¨% ]¦ YXO ZY^\dOLXO ac¸¦MdXSO a Z\dcZKNU_ QNc +dY\ dY]^KXSO XK dOaX¦^\d ZY K_^YWK^cMdXcW dKWUXS°MS_ ]S° N\daSMdOU 4ONXKU TO]^ ^Y ÄMSOÒUK KV^O\XK^caXK QNcÒ +dY\ XSO dKa]dO dK¸K^aSK ]aYTO ZY^\dOLc KÒ ^KU N¸_QY ]c]^OW WYÒO Z\dOTĨ LOdZYÄ\ONXSY d U\YU_ NY U\YU_ !
5YWZVO^XK ÄMSOÒUK Z\YaKNd¦MK Z\dOd MK¸c Z\dcZKNOU _ÒcMSK YN TOQY ZSO\a]dOQY NY Y]^K^XSOQY U\YU_ TO]^ XKdcaKXK ]MOXK\S_]dOW
:$
3 NY ^OQY MOV_ _ÒcaKWc U\YUa ZYN\d°NXcMR YdXKMdYXcMR TKUY S )
9$
.YU¸KNXSO .dSOTO ]S° ^KU QNcÒ ÄMSOÒUK KV^O\XK^caXK dKaSO\KT¦MK U\YUS NYNK^UYaO TO]^ ZY Z\Y]^_ dLSY\OW MdcXXYÄMS U^\O WYQ¦ dY]^K¨ acUYXKXO TKUY P\KQWOX^c SXXOQY U\YU_ ÄMSOÒUS Q¸aXOT 5SONc +dY\ dY]^KTO XK dOaX¦^\d dLc^ N¸_QY ^Y XK ÄMSOÒMO Q¸aXOT dY]^KT¦ acUYXKXO U\YUS S ! NVK^OQY ^OÒ ÄMSOÒUK KV^O\XK^caXK dKMdcXK ]S° YN U\YU_ Y X_WO\dO S UYºMdc U\YUSOW A]dc]^USO YXO ]¦ YZMTYXKVXcWS OVOWOX^KWS U\YU_
AS°U]dYĨ Z\dcZKNUa _ÒcMSK ZY]SKNK USVUK \ÒXcMR ]MOXK\S_]dc TONXKU a]dc]^USO YXO \OKVSd_T¦ ^OX ]KW MOV _Òc^UYaXSUK
JESTEu TUTAJ
gCIEKI ALTERNATYWNE S OPCJONALNE
Przypadki użycia bez tajemnic 7 TYM TYGODNIU
7YZNANIE gCIEKI !LTERNATYWNEJ (EAD&IRST 'l -u¬G ÛAlR¸p| q Ry- ¬ªy- t¬®Rql²u¬G ¸R | - yl| ylR oR R² ®7¬ ®A®Ö²qlª- |ªlRJ® y-uG A| -plRa| lÖ J®lRoR gCIEKA !LTERNATYWNA | | ¥ A®--ul u-u ª-¸RylRG ¸R ylR oR Ru J|²É A®Ö | ªtÔA®-y- ª 7lRa ®J-®RÍ i|J®l ul | |G ¸R ¥Jy| 7R®R uylR ª|®¬É J|7¬ ®¬-JRp ¥¸¬Al-G oRJy-p ª¬aqÔJ- y- |G ¸R ylRu-q ®-ª®R oR Ru lay||ª-y- (EAD&IRST ay||ª-y- qR -u- ªt-²ylR |ªlRJ®l-t-²G ¸R ®y-oJ¥oR® lÖ ylRu-q ª p-¸J¬u ®¬-Jp¥ ¥¸¬Al- +-7®ul-t| | -pG o-p7¬² 7¬t- y--ªJÖ ª-¸y-[ gCIEKA !LTERNATYWNA |¸R l ®-7®ul-t| RJy-p y-ªR oR²ql oR Ru \-auRy Ru ®¬-Jp¥ ¥¸¬Al-G | l -p u|aÖ ®| -É |ulylÖ - l ®- Ôl|y- o-plu² lyy¬u ®7l|Ru p|p}ª "| y--ªJÖ -p¥JyRV "| -pG o-p7¬ uylR -u ª |a}qR ylR 7¬t|[
(EAD&IRST ®¬ u|¸R® y-u | ª¬ t¥u-A®¬É y- o-plu² ®¬pt-J®lR gCIEKA !LTERNATYWNA 't-²ylR plqp- Jyl Ru¥ 7¬t-u \-auRy Ru ®¬-Jp¥ ¥¸¬Al- |l¥oÔARa| p¥|ª-ylR t¬ ª y|ª¬u ly RyR |ª¬u pqRlR u¥®¬A®y¬u W ¥®¬p|q|al- ¬t-u ¬u -p 7-J®| |¥®|y-V |p-®-t| lÖG ¸R |7t¥a¥oÖ ¬ ¥-AoRG ª p }¬Ai p- - pRJ¬ |ª- pqlRy - ®| -t- |J®¥A|y- (EAD&IRST uV -qR | Ai¬7- y--ªJÖ ª-¸yR ®-J-ylR[ +- Ru ª A®¬u |7qRu gCIEKA !LTERNATYWNA }¸V u|¸R ÔJ®ÖG ¸R | \-p ¬A®ylR l | yR ®-J-ylRG oRJy-p |p-®¥oR lÖG ¸R ®-ª®R oR Ru |ulo-y- '¬aqÔJ- | -pG o-p aJ¬7¬ ª®¬A¬ pt-J-ql ®-u}ªlRyl-G - lAi p- ¬ pRJ¬ |ªR 7¬t¬ ®-ª®R -pAR |ª-yR i|Al-¸ 7¬t-u A®Ö²AlÔ ®¬-Jp¥ ¥¸¬Al-G | ylR y-qR¸-t-u J| y-oA®Ö²AlRo R-ql®|ª-y¬Ai ARy-l¥®¬ (EAD&IRST i-G |®¥ulRu ®¬ql oR²ql A®¬o-² p- - pRJ¬ |ª- ylR ®| -t- |J®¥A|y-G | ª |a}qR ylR 7¬t-² ª¬p|y¬ª-y- gCIEKA !LTERNATYWNA 't-²ylR[ RAo-ql²Al |J \ly-y}ª l 7R®lRA®RÍ ª- ª| uylR ¥ªlRq7l-ql ªAlÔ¸ ®-Aiª¬A-ql lÖG o-p 7-J®| oR Ru ª-¸y- Jq- \lu¬V qR p | 7¬ AiAl-t lRJ®lRÉ A-t¬ A®- y- |tp¥ l }¸y|ª-É (EAD&IRST i¬7- ®-A®¬y-u |®¥ulRÉ lRuylRo oRJy-p ªAlÔ¸ |u-a-® Ru¥ ®¬-Jp|ªl ¥¸¬Al-G -ªJ- -ªR oR²ql ylR oR R² ylR¥ -yylR ¥¸¬ª-y-G | oRJy-p |J A®-¥ J| A®-¥ u¥l® ªp|A®¬É J| -pAol gCIEKA !LTERNATYWNA "| -ªJ-G ª®¬A¬ u-u¬ Ry -u ARq | | ¥ ylR ®J-ª-t-u |7lR -ª¬ ® Ra|G ¸R u|aÖ 7¬É -p ª-¸y- Jq- ®¬-Jp¥ ¥¸¬Al-G - oRJy|A®R²ylR ylRu-q A-tp|ªlAlR lay||ª-y- (EAD&IRST }¸G ¬qp| |u¬²qV ®¬-JRp ¥¸¬Al- ylaJ¬ ylR 7¬t7¬ p|uqR y¬ 7R® AlR7lR gCIEKA !LTERNATYWNA | -pV |pl ¡ l ` ªAlÔ¸ ul | |ª -®-oÔ A®¬ªl²AlRG |yR Ô A®Ö²AlÔ ²AlR¸pl -q Ry- ¬ªyRo ª¬p|y¬ª-yRo ª RJ¬G aJ¬ pqlRyAl u-oÔ o¥¸ ®-t|¸|yR p|y | ª y-®¬u pqRlRG l Jq- Ra| Ô ª¬p|y¬ª-yR A-t¬ A®- - ª| lu u}ªlÉ[ (EAD&IRST "®¬u-o lÖ '®¬A¬ ªlRu¬G ¸R oR R² 7-J®| ª-¸yÔ A®Ö²AlÔ ®¬-Jp¥ ¥¸¬Al-
2OZDZIA
7YMAGANIA ULEGAJ ZMIANOM
DKY]^\d Y¸aOU 3VO ]MOXK\S_]dc WYÒXK ac\ÒXS¨ a Z\dcZKNU_ _ÒcMSK YZS]_T¦McW N\daSMdUS NVK >KNUK S 4KXUS) 8K SVO ]ZY]YLa WYÒXK Z\dOTĨ Z\dcZKNOU _ÒcMSK YZS]_T¦Mc NdSK¸KXSO N\daSMdOU dKWaSYXcMR Z\dOd >KNUK S 4KXU°) :KWS°^KT ÒO MdK]KWS UYXSOMdXO TO]^ acUY\dc]^KXSO TONXOT d S]^XSOT¦McMR ÄMSOÒOU KV^O\XK^caXcMR K XSOUSONc a]dc]^USO ÄMSOÒUS KV^O\XK^caXO WYÒXK a YQVO ZYWSX¦¨
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK
!BY POMÎC #I W ROZWIZANIU TEGO ZADANIA ZAPISALIwMY WSZYSTKIE KROKI JAKIE S WYKONYWANE W SCENARIUSZU PRZEDSTAWIONYM NA POWYSZYM RYSUNKU
ÃMSOÒUS KV^O\XK^caXO ÃMSOÒUK Q¸aXK +dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua ÒO +dY\ ]dMdOUK i]¸c]dcp ]dMdOUKXSO +dY\K =c]^OW \YdZYdXKaKXSK NÐaS°Ua >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua ]dMdOUKXSO +dY\K dXYa_ i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO >KNOU V_L 4KXUK XKMS]UKT¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua Z\dcMS]U XK ZSVYMSO ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
^
¤
¡
`
U "YÁ MOE NIE BÅDZIESZ POTRZEBOWA WSZYSTKICH TYCH PUSTYCH MIEJSC
JESTEu TUTAJ
Sprawdź nasze odpowiedzi podane na następnej stronie.
4KU NdSK¸KT¦ N\daSMdUS
*EDEN PRZYPADEK UYCIA WIELE SCENARIUSZY
DKY]^\d Y¸aOU
KNUK S 4KXUS)
8K SVO ]ZY]YLa WYÒXK Z\dOTĨ Z\dcZKNOU _ÒcMSK YZS]_T¦Mc NdSK¸KXSO N\daSMdOU dKWaSYXcMR Z\dOd >KNUK S 4KXU°) :KWS°^KT ÒO MdK]KWS UYXSOMdXO TO]^ acUY\dc]^KXSO TONXOT d S]^XSOT¦McMR ÄMSOÒOU KV^O\XK^caXcMR K XSOUSONc a]dc]^USO ÄMSOÒUS KV^O\XK^caXO WYÒXK a YQVO ZYWSX¦¨
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS ÃMSOÒUS KV^O\XK^caXO ÃMSOÒUK Q¸aXK SOVO a¸KÄMSM Lc +dY\ ]dMdOUK acZ_ÄMSVS QY XK ]ZKMO\ >KNOU V_L 4KXUK ]¸c]d¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua ÒO +dY\ ]dMdOUK i]¸c]dcp ]dMdOUKXSO +dY\K >KNOU V_L 4KXUK XKMS]UKT¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua Z\dcMS]U XK ZSVYMSO ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° +dY\ acMRYNdS XK dOaX¦^\d +dY\ dK¸K^aSK ]aYTO ZY^\dOLc .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ \YdZYdXKaKXSK NÐaS°Ua =c]^OW ]dMdOUKXSO +dY\K dXYa_ i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO >KNOU V_L 4KXUK XKMS]UKT¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua Z\dcMS]U XK ZSVYMSO ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦ GÎWNA 4O JEST wCIEKA IA YC U U DK PA PRZY
4E DWA SCENARIUSZE NIE WYKORZYSTUJ wCIEKI ALTERNATYWNEJ REPREZENTUJCEJ SYTUACJÅ GDY !ZOR ZOSTAJE NA ZEWNTRZ PO ZAMKNIÅCIU DRZWICZEK
TO BÅDZIESZ Y *E TAKE MUSIA WYKONAÁ KROK
^
¤
¡
`
U
TEN PUNKT JEST PUSTY
2OZDZIA
ZE *EwLI WYKONASZ KROK TO ZAWS KROK E TAK NAÁ WYKO IA MUS IESZ BÅDZ
7YMAGANIA ULEGAJ ZMIANOM
:\dcQY^_TWc ]S° NY UYNYaKXSKj >O\Kd USONc NYUYºMdcVSÄWc Z\KMO XKN Z\dcZKNUSOW _ÒcMSK S YU\OÄVSVSÄWc a]dc]^USO WYÒVSaO ]MOXK\S_]dO UY\dc]^KXSK d N\daSMdOU NVK Z]K TO]^OÄWc T_Ò QY^YaS Lc XKZS]K¨ UYN U^\c ]ZO¸XS a]dc]^USO XYaO acWKQKXSK >KNUK S 4KXUS DK]^KXaWc ]S° MY ^OX UYN ZYaSXSOX \YLS¨j 5WAAM E POWINNIvMY JESZCZE RAZ SPRAWDZI· NASZ LIST» WYMAGAÂ 3KORO ZMIENIY SI» WYMAGANIA 4ADKA I *ANKI TO TAKE NASZA LISTA WYMAGAÂ MOGA ULEC MODYFIKACJI NIEPRAWDA
4KUKUYVaSOU dWSKXK a Z\dcZKNU_ _ÒcMSK ZYaYN_TO ÒO UYXSOMdXO L°NdSO ZYXYaXO ]Z\KaNdOXSO VS]^c acWKQKº -ulÖ -oG ¸R |J -ª|ª¬u ARqRu ª|®Ryl- J|7¬Ai ®¬-Jp}ª ¥¸¬Al- oR ¥ ª|®RylR J|7Ro ql ¬ ª¬u-a-Í ®- Ru ®ul-y- ®¬-Jp¥ ¥¸¬Al- u|¸R |®y-A®-É -p¸R ®ul-yÖ ql ¬ ª¬u-a-Í ®¬o®¬ou¬ lÖ ªlÖA y-®Ro J| ¬AiA®-|ªRo ql²AlR ª¬u-a-Í l -ªJ´u¬G A®¬ ylR |ªlyyl²u¬ oRo ¥®¥RtylÉ
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 6S]^K acWKQKº 1\XK U\Ka°NÐ Y^aY\_ N\daSMdOU W_]S Lc¨ _WSO]dMdYXK MY XKTWXSOT XK ac]YUYÄMS MOX^cWO^\a 8KMSÄXS°MSO Z\dcMS]U_ XK ZSVYMSO ZYaYN_TO Y^aY\dOXSO N\daSMdOU TOÄVS ^O ]¦ dKWUXS°^O V_L SMR dKWUXS°MSO TOÄVS ]¦ Y^aK\^O :Y Y^aY\dOXS_ N\daSMdOU ZYaSXXc YXO dY]^K¨ K_^YWK^cMdXSO dKWUXS°^O TOÄVS aMdOÄXSOT XSO dY]^KX¦ dKWUXS°^O Z\dOd _Òc^UYaXSUK
$OPISZ TU WSZELKIE DODATKOWE WYMAGANIA KTÎRE OKREwLIEw PODCZAS ANALIZY RÎNYCH SCENARIUSZY DZIAANIA DRZWICZEK DLA PSA PRZEDSTAWIONYCH NA STRONIE
JESTEu TUTAJ
-ODYFIKACJA LISTY WYMAGAÊ
?d_ZO¸XSOXSO VS]^c acWKQKº ®- Ru u¥lu¬ |7t¥¸¬É plqp- y|ª¬Ai ²AlR¸Rp -q Ry- ¬ªy¬AiG A| 7ÖJ®lR ª¬u-a-t| J|J-yl- J| y-®Ro J| ¬AiA®-|ªRo ql ¬ ª¬u-a-Í plqp¥ y|ª¬Ai ¥yp }ª + ®RJ -ªl|yRa| |yl¸Ro ®¬-Jp¥ ¥¸¬Alª¬pR²qlql²u¬ ª®¬ plR ¥yp ¬G p }R o¥¸ Ô |7t¥alª-yR ®R® ª¬u-a-yl- ®y-oJ¥oÔAR lÖ y- ql²AlR '¬aqÔJ- y- |G ¸R 7ÖJ®lRu¬ u¥lRql J|J-É J| ql ¬ ª¬u-a-Í plqp- y|ª¬Ai ¥yp }ª
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 4KU NdSK¸KT¦ N\daSMdUS 4E PUNKTY WI SIÅ TAK NAPRAWDÅ Z DWOMA WYMAGANIAMI aUSYSZENIEMp SZCZEKANIA ORAZ OTWORZENIEM DRZWICZEK DLA PSA
4O S ZUPENIE INNE KROKI NI I JEDNAK WI SIÅ Z NIMI DOKADNIE TAKIE SAME WYMAGANIA
ÃMSOÒUK Q¸aXK
ÃMSOÒUS KV^O\XK^caXO
+dY\ ]dMdOUK Lc a¸KÄMSMSOVO acZ_ÄMSVS QY XK ]ZKMO\ =c]^OW \YdZYdXKaKXSK NÐaS°Ua >KNOU V_L 4KXUK ]¸c]d¦ ÒO +dY\ ]dMdOUK +dY\K SO ]dMdOUKX i]¸c]dcp a V_L 4KXUK XKMS]UKT¦ NÐaS°U >KNOU KaKXSK \YdZYdX =c]^OW XK ZSVYMSO Z\dcMS]U U N\daSMdO SK Y^aY\dOX ac]c¸K Ò¦NKXSO ]S° ¦ .\daSMdUS NVK Z]K Y^aSO\KT 7YMAGANIA ZWIZANE +dY\ acMRYNdS XK dOaX¦^\d Z WIÅKSZOwCI KROKÎW ZNAJDUJCYCH +dY\ dK¸K^aSK ]aYTO ZY^\dOLc SIÅ NA wCIECE GÎWNEJ .\daS dKWcUKT¦ ]S° K_^YWK^cMdXSO OKREwLILIwMY JU W POPRZEDNIM ROZDZIALE +dY\ ]dMdOUK Lc a¸KÄMSMSOVO aZ_ÄMSVS QY NY NYW_ >KNOU V_L 4KXUK ]¸c]d¦ =c]^OW \YdZYdXKaKXSK NÐaS°Ua ]dMdOUKXSO +dY\K dXYa_ i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO a NÐaS°U V_L 4KXUK XKMS]UKT¦ KaKXSK >KNOU \YdZYdX =c]^OW U N\daSMdO SK Y^aY\dOX ac]c¸K Ò¦NKXSO Z\dcMS]U XK ZSVYMSO .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! +dY\ a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
0AMIÅTAJ E TE KROKI ZNAJDUJCE SIÅ OBECNIE NA wCIECE ALTERNATYWNEJ W PRZYPADKU UYCIA PRZEDSTAWIONYM W POPRZEDNIM ROZDZIALE ZNAJDOWAY SIÅ NA wCIECE GÎWNEJb
bDLATEGO ZWIZANE Z NIMI WYMAGANIA JU S NA NASZEJ LIwCIE
.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 6S]^K acWKQKº
/TO DWA NOWE WYMAGANIA KTÎRE MUSIMY DODAÁ DO LIST Y
2OZDZIA
1\XK U\Ka°NÐ Y^aY\_ N\daSMdOU W_]S Lc¨ _WSO]dMdYXK MY XKTWXSOT XK ac]YUYÄMS MOX^cWO^\a 8KMSÄXS°MSO Z\dcMS]U_ XK ZSVYMSO ZYaYN_TO Y^aY\dOXSO N\daSMdOU TOÄVS ^O ]¦ dKWUXS°^O V_L SMR dKWUXS°MSO TOÄVS ]¦ Y^aK\^O :Y Y^aY\dOXS_ N\daSMdOU ZYaSXXc YXO dY]^K¨ K_^YWK^cMdXSO dKWUXS°^O TOÄVS aMdOÄXSOT XSO dY]^KX¦ dKWUXS°^O Z\dOd _Òc^UYaXSUK =c]^OW \YdZYdXKaKXSK NÐaS°Ua W_]S Lc¨ a ]^KXSO YU\OÄVS¨ USONc ZSO] ]dMdOUK =c]^OW \YdZYdXKaKXSK NÐaS°Ua W_]S Lc¨ a ]^KXSO Y^aY\dc¨ N\daSMdUS USONc ZSO] dKMdXSO ]dMdOUK¨
7YMAGANIA ULEGAJ ZMIANOM
A UYºM_ ZYXYaXSO WYÒOWc dKMd¦¨ ZS]K¨ UYN YL]¸_Q_T¦Mc N\daSMdUS Wraz z nowymi wymaganiami musi się pojawić nowy kod. Potrzebne nam będzie szczekanie Azora, system rozpoznawania dźwięków, który będzie nasłuchiwać i rozpoznawać to szczekanie oraz w odpowiedzi na nie otwierać drzwiczki.
(AU HAUU
4O JEST NASZA NOWA METODA KTÎR A MA BYÁ WYWOYWANA ZA KADYM RAZEM GDY SPRZÅT $ARKA aUSYSZY p SZCZEKANIE class DogDoorSim { }
0ODOBNIE JAK W PRZYPADKU URZDZEN DO ROZPOZNAWANIA SZCZEKANIA TAK IA I SAME DRZWICZKI DLA PSA SKADAJ E SIÅ ZE SPRZÅTU ORAZ OPROGRAMOWA NIA
recognize ()
.YQ.YY\=SW_VK^Y\TK`K class BarkRecognizer { update }
JEST 0AMIÅTAJ E !ZOR NIE Z ZNAJDUJE LEC ELEMENTEM SYSTEMU NIE BÅDZIE SIÅ POZA NIM DLATEGO REPREZENTUJCY NAM POTRZEBNY OBIEKT W KLASIE !ZORA 7YSTARCZY E YMULUJEMY $OG$OOR3IMULATOR ZAS ORA !Z E ANI SZCZEK
,K\UcVUY ^cVO) 0KU^cMdXSO acQV¦NK XK ^Y ÒO UVK]K ,K\UaYTO KZVSUKMTO W_]d¦ NdSK¸K¨ a ^KUSMR aK\_XUKMR a TKUSMR \dOMdcaSÄMS UVSOXMS L°N¦ SMR _ÒcaKVS A ^cW \YdNdSKVO dK]^KXYaSWc ]S° TKU dc]UK¨ ZOaXYĨ ÒO XK]dO KZVSUKMTO L°N¦ NdSK¸K¨ a \dOMdcaS]^cW UYX^OUÄMSO .YaSO]d ]S° a XSW a TKUS ]ZY]L KXKVSdK ^OU]^YaK WYÒO Z\dOU]d^K¸MS¨ ]^aY\dYXc aMdOÄXSOT Z\dcZKNOU _ÒcMSK a UVK]c S WO^YNc U^\O XK ZOaXY L°N¦ NdSK¸K¨ dQYNXSO d YMdOUSaKXSKWS UVSOX^K + USONc ]UYºMdc]d VOU^_\° ^OQY \YdNdSK¸_ ^KUÒO S >c L°NdSO]d WQ¸ ZYaSONdSO¨$ i.YUYXK¸OW ^OQY 7YTO YZ\YQ\KWYaKXSO TO]^ QY^YaO NY dK]^Y]YaKXSK a \dOMdcaS]^cW ÄaSOMSOp
TO JEST NOWY ROZDZIA
4EN uWIAT KOCHA PSY
4ONOX ZSO] NaK Z]c ^\dc Z]c Md^O\cj ' \lulR lRJ®ªl- ª®¬ p| ®R7lRa- ®a|JylR ® q-yRu |ª- ªRo- J®ªlA®RpG J| p }Ro ||a-u|ª-ylR y-l-tR² ª |®RJylu |®J®l-qRG ®RJ-oR lÖ o-p ®¬t|ªl|ªR AlRtR 7¥tRA®plV RJy-p ª-® ® A|-® ªlÖp®Ô qlA®7Ô ®RJ-y¬Ai J®ªlA®Rp ®-A®Öt| lÖ -p¸R |o-ªl-É A|-® ªlÖARo p-aF
"ARDZO PODOBA MI SI» TEN NOWY MODEL DRZWICZEK Z SYSTEMEM ROZPOZNAWANIA SZCZEKANIA *EDNAK TERAZ KIEDY ZAINSTALOWALIvCIE TAKIE DRZWICZKI W MOIM DOMU OTWIERAJ SI» ONE ZA KADYM RAZEM GDY ZASZCZEKA PIES SSIADÄW .IE TEGO OCZEKIWAAM WYDAJC PIENIDZE NA T» NOW WERSJ» DRZWICZEK
(ANKA
(RAUU (RAUU $RZWICZKI DLA PSA ZAMONTOWANE W DOMU (ANKI POWINNY SIÅ IE OTWIERAÁ WYCZNIE NA SZCZEKAN "RUSAb ALE OTWIERAJ SIÅ TAK JEwLI W SSIEDZTWIE ZASE JAKIKOLWIEK INNY PIES ZCZEKA
"RUS
2OZDZIA
(IAU (IAU
(AUUUUUUU
7RRRRR (AU
!NALIZA
>aYTO YZ\YQ\KWYaKXSO WK UYX^OU]^ | ¬AiA®- -AR y-J y-®¬u ||a-u|ª-ylRu 7¬t¬ |ª-J®|yR ª ª|l Ro }¸yl l ylR ®- -y-ªl-ql²u¬ lÖ -A®Ro y-J p|y Rp RuG ª o-plu 7ÖJ®lR |y| J®l-t-É yy¬ul t|ª¬G u¬²qRql²u¬ | y-®¬u ||a-u|ª-yl¥ ª y- Ö¥oÔA¬ |}7F
7 IDEALNYM wWIECIE KADY UYWA NASZEGO OPROGRAMOWANIA TAK JAK SOBIE TEGO YCZYMY
+XKVSdK
class DogDoor { open() }
.YQ.YY\TK`K
3NOKVXc ÃaSK^
7 TYM PRZYPADKU WSZYSCY S SPOKOJNI I ZRELAKSOWANI A W SSIEDZTWIE NIE MA ADNYCH INNYCH PSÎW
RJy-p y-®R ||a-u|ª-ylR u¥l J®l-t-É ª ®RA®¬ªl ¬uG - ylR ª lJR-qy¬u ²ªlRAlR | |®y-A®-G ¸R u¥lu¬ u¬²qRÉ | y-®¬u ||a-u|ª-yl¥ ª ®¥RtylR lyy¬u p|y Rp²AlRF RZECZY 7 TYM KONTEKwCIE RÎT OB ZY J RA BIE ZY PR J ZNACZNIE CZÅwCIE
class DogDoor { open() }
.YQ.YY\TK`K
ZYWKQK XKW _dc]UK¨ ZOaXYĨ ÒO XK]d ]c]^OW L°NdSO NdSK¸K¨ a \dOMdcaS]^cW UYX^OUÄMSO
7 RZECZYWISTYM wWIECIE SPOTYKAMY INNE PSY KOTY GRYZONIE ORAZ CA MASÅ INNYCH PROBLEMÎW A WSZYSTKIE TE CZYNNIKI MAJ TYLKO JEDEN CEL s DOPROWADZIÁ DO AWARII NASZEGO OPROGRAMOWANIA
Y a¸KÄXSO d ^OQY ZYaYN_ Nc]U_^YaKXSO Y YZ\YQ\KWYaKXS_ TO]^ ^KUSO ^\_NXO$ dKdacMdKT S]^XSOTO aS°MOT XSÒ TONXY \YdaS¦dKXSO UYXU\O^XOQY Z\YLVOW_ S Z\dOaKÒXSO ÒKNXO d XSMR XSO TO]^ ^cW iTONcXSO ]¸_]dXcWp
:$ A WYSW \YdaS¦dKXS_ dK]^¦ZS¸OW S]^XSOT¦Mc aMdOÄXSOT U\YU Y\cQSXKVXOQY Z\dcZKNU_ _ÒcMSK NaYWK XYacWS U\YUKWS 1NdSO ZYZO¸XS¸OW L¸¦N)
9$
8SO ZYZO¸XS¸OÄ ÒKNXOQY L¸°N_ A]ZYWSXKVSÄWc T_Ò ÒO XSOWKV UKÒNc Z\YLVOW WYÒXK \YdaS¦dK¨ XK USVUK ]ZY]YLa% XK ^OT ]KWOT dK]KNdSO UKÒNO d ^cMR \YdaS¦dKº NK ]S° \ÒXY\KUY dKZS]K¨ a Z\dcZKNU_ _ÒcMSK 4OÄVS a ]aYSW Z\dcZKNU_ _ÒcMSK dK]^Y]YaK¸OÄ aS°MOT XSÒ TONOX NYNK^UYac U\YU K ]c]^OW \YdZYdXKaKXSK NÐaS°Ua NdSK¸K ZYZ\KaXSO S XSO NYZ_]dMdK Lc YLMO Z]c aMRYNdS¸c NY NYW_ ^Y XKVOÒc ac]X_¨ aXSY]OU ÒO ]^aY\dc¸OÄ ZYZ\KaXc NdSK¸KT¦Mc Z\dcZKNOU _ÒcMSK
:$
KLcÄ LOd Z\YLVOW_ ]KW WQ¸ TO d\Yd_WSO¨ S ac^¸_WKMdc¨ ]dOPYaS Y\Kd UVSOX^YW +XKVSdK Y\Kd Z\dcZKNUS _ÒcMSK ZYdaYV¦ -S ZYUKdK¨ UVSOX^YW WOXONÒO\YW S SXXcW Z\YQ\KWS]^YW
+ dK^OW ^O Z\dcZKNUS _ÒcMSK XSO ]¦ KÒ ^KU Z\OMcdcTXO XSOZ\KaNKÒ)
TKU ]c]^OW NdSK¸K
9$
a UYX^OUÄMSO
A \dOMdcaS]^YÄMS Z\dcZKNUS _ÒcMSK ]¦ LK\NdY Z\OMcdcTXO 4OÄVS Z\dcZKNOU _ÒcMSK XSO YZS]_TO ]dMdOQ¸YaY ]ZY]YL_ a TKUS ZYaSXSOX NdSK¸K¨ ]c]^OW ^Y S]^XSOTO XSOLOdZSOMdOº]^aY ÒO ZYWSXSO]d TONXY V_L USVUK aKÒXcMR acWKQKº K a OPOUMSO UVSOX^ XSO L°NdSO dKNYaYVYXc 8SOWXSOT TONXKU Z\dcZKNUS _ÒcMSK XSO W_]d¦ Lc¨ dLc^XSY PY\WKVXO% SXXcWS ]¸Yac >aYTO Z\dcZKNUS _ÒcMSK WYQ¦ ]S° \ÒXS¨ YN XK]dcMR K XK]dO WYQ¦ Lc¨ SXXO YN Z\dcZKNUa XK\c]YaKXcMR Z\dOd UYQYÄ SXXOQY 8KTaKÒXSOT]dO TO]^ ^Y Lc Z\dcZKNUS _ÒcMSK Lc¸c d\Yd_WSK¸O NVK -SOLSO S KLcÄ WQ¸ TO acTKÄXS¨ ]aYSW a]Z¸Z\KMYaXSUYW ]dOPYaS S UVSOX^YW
\dOMdcaS]^OQY ÄaSK^K
AC>«Í ?7C=³ 9Z\Md dWSKX Z\dON]^KaSYXcMR XK ]^\YXSO ! a XK]dcW ]c]^OWSO N\daSMdOU NVK Z]K UYXSOMdXO L°NdSO aZ\YaKNdOXSO TO]dMdO TONXOT LK\NdY aKÒXOT WYNcPSUKMTS -dc aSO]d Y MY WYÒO MRYNdS¨)
JESTEu TUTAJ
$BAJ BY PRZYPADKI UYCIA BYY AKTUALNE
+U^_KVSd_T Z\dcZKNUS _ÒcMSK |ylRª-¸ ®ulRylql²u¬ Jl-a-u J®l-t-yl- J®ªlA®Rp Jq- -G u¥lu¬ ª}AlÉ J| ®¬-Jp¥ ¥¸¬Al- y-®Ra| ¬ Ru¥ l ®-p ¥-ql®|ª-É a|G ¥ª®aqÖJyl-oÔA y|ªR p|pl - ÖylRG y- plqp¥ p|qRoy¬Ai |y-Ai | --u¬ lÖ |pR²qlÉG o-plR ®ul-y¬ u¥lu¬ ª|ª-J®lÉ ª p|J®lR y-®Ro -qlp-Aol
0A PA !ZORKU /D TERAZ BÅDZIEMY UYWALI OKREwLENIA aPIES WAwCICIELAp
/TO ZAKTUALIZOWANY KROK KTÎRY OBSUGUJE OTWIERANIE DRZWICZEK TYLKO I WYCZNIE WTEDY GDY SZCZEKA PIES WAwCICIELA
.IE ZAPOMNIJ ZMODYFIKOWAÁ TAKE I TEGO KROKU
5SUNÅLIwMY WSZYSTKIE ODWOANIA KONKRETNYCH WAwCICIELI I PSÎW DO DZIÅ CZEMU W OBECNEJ POSTACI TEN PRZY KI UYCIA BÅDZIE MONA STOSOWAÁ DLAPADEK WSZYSTKICH KLIENTÎW FIRMY $ARKA
8SO]KWYaS^O N\daSMdUS NVK Z]K aO\]TK 4KU NdSK¸KT¦ N\daSMdUS ÃMSOÒUK Q¸aXK ÃMSOÒUS KV^O\XK^caXO :SO] a¸KÄMSMSOVK ]dMdOUK Lc acTĨ XK ]ZKMO\ A¸KÄMSMSOV ]¸c]dc ÒO TOQY =c]^OW \YdZYdXKaKXSK NÐaS°Ua ZSO] ]dMdOUK i]¸c]dcp ]dMdOUKXSO +dY\K 4OÄVS ]c]^OW \YdZYdXK ÒO ]dMdOUK ZSO] A¸KÄMSMSOV XKMS]UK Z\dcMS]U XK ZSVYMSO a¸KÄMSMSOVK ^Y ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° :AMIAST 4ADK (ANKI BÅDZIE A I *ANKI LUB M :SO] a¸KÄMSMSOVK acMRYNdS XK dOaX¦^\d ZWROTU aWAwC Y UYWAÁ ICIELp :SO] a¸KÄMSMSOVK dK¸K^aSK ]aYTO ZY^\dOLc .\daSMdUS dKWcUKT¦ ]S° K_^YWK^cMdXSO :SO] a¸KÄMSMSOVK ]dMdOUK Lc aOTĨ NY NYW_ =c]^OW \YdZYdXKaKXSK NÐaS°Ua A¸KÄMSMSOV ]¸c]dc ]dMdOUKXSO i]¸c]dcp ]dMdOUKXSO ZYXYaXSO ]aYTOQY Z]K dXYa_ 4OÄVS ]c]^OW \YdZYdXK ÒO ]dMdOUK A¸KÄMSMSOV XKMS]UK Z\dcMS]U ZSO] a¸KÄMSMSOVK ^Y ac]c¸K Ò¦NKXSO XK ZSVYMSO Y^aY\dOXSK N\daSMdOU .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ ! :SO] a¸KÄMSMSOVK a\KMK d ZYa\Y^OW " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦
2OZDZIA
!NALIZA
#ZY NIE MUSIMY PRZECHOWYWA· W NASZYCH DRZWICZKACH INFORMACJI O SPOSOBIE SZCZEKANIA PSA WAvCICIELA 7 PRZECIWNYM RAZIE NIE B»DZIEMY MIELI Z CZYM PORÄWNA· SZCZEKANIA KTÄRE aUSYSZA SYSTEM ROZPOZNAWANIA DyWI»KU
:Y^\dOL_TOWc XYaOQY Z\dcZKNU_ _ÒcMSK U^\c _WYÒVSaS Z\dOMRYacaKXSO SXPY\WKMTS Y ]ZY]YLSO ]dMdOUKXSK Z]K a¸KÄMSMSOVK y-ql®- |p-®-t- y-uG ¸R u¥lu¬ ª|ª-J®lÉ RªyR ®ul-y¬ J| y-®Ra| ®¬-Jp¥ ¥¸¬Al- W - R ®ul-y¬ ® p|qRl |®y-A®-oÔG ¸R ®R7- 7ÖJ®lR ylRA| ®ulRylÉ y-® ¬ Ru p|| u-u¬ |}ªy¬ª-É ®A®Rp-ylRG p }R ª¬Aiª¬Alt ¬ Ru |®|®y-ª-yl- J´ªlÖp¥G ®R ®A®Rp-ylRu - ªt-²AlAlRq-G | |A®¬ªl ¬u oR G ¸R aJ®lR² u¥lu¬ ®RAi|ª¬ª-É ly\|u-AoR | ||7lR ®A®Rp-yl- - ªt-²AlAlRq- | |®y-A®-G ¸R 7ÖJ®lRu¬ | ®R7|ª-ql J|J- p|ªRa| ®¬-Jp¥ ¥¸¬Al-
DKY]^\d Y¸aOU .YNKT XYac Z\dcZKNOU _ÒcMSK daS¦dKXc d Z\dOMRYacaKXSOW SXPY\WKMTS Y ]ZY]YLSO ]dMdOUKXSK Z]K a¸KÄMSMSOVK + dK^OW L°NdSO -S ZY^\dOLXc XYac Z\dcZKNOU _ÒcMSK YU\OÄVKT¦Mc ]ZY]L Z\dOMRYacaKXSK SXPY\WKMTS Y ]dMdOUKXS_ Z]K Y]YLc dKWKaSKT¦MOT N\daSMdUS DK¸ÒWc ÒO SXPY\WKMTO ^O a ZY]^KMS NÐaS°Ua L°N¦ Z\dOMRYacaKXO a ]KWcMR N\daSMdUKMR ]ZOMTKVSÄMS dKTW_T¦Mc ]S° a PS\WSO .K\UK ]Z\d°^OW ^aSO\Nd¦ ÒO NVK XSMR XSO ]^KXYaS ^Y ÒKNXOQY Z\YLVOW_ 8KZS]d dK^OW XYac Z\dcZKNOU _ÒcMSK NVK ^OQY dKNKXSK _ÒcaKT¦M Z\dc ^cW ]dKLVYX_ Z\dON]^KaSYXOQY ZYXSÒOT 4EN PRZYPADEK UYCIA BÅDZIE SIÅ SKADAÁ WYCZNIE Z DWÎCH KROKÎW POZA TYM NIE BÅDZIESZ MUSIA SIÅ PRZEJMOWAÁ JAKIMIKOLWIEK wCIEKAMI ALTERNATYWNYMI
8SO]KWYaS^O N\daSMdUS NVK Z]K aO\]TK DKZS]caKXSO SXPY\WKMTS Y ]ZY]YLSO ]dMdOUKXSK
0ONIEWA JEST TO NASZ DRUGI PRZYPADEK UYCIA ZATEM NADAJMY MU TYTU ODPOWIADAJCY CZYNNOwCIOM JAKIE OPISUJE
JESTEu TUTAJ
.OWY PRZYPADEK UYCIA
DKY]^\d Y¸aOU
KU 5KÒNc Z\dcZKNOU _ÒcMSK ZYaSXSOX
dKaSO\K¨ ]dMdOQ¸YaO SXPY\WKMTO NY^cMd¦MO ac¸¦MdXSO TONXOQY MOV_ _Òc^UYaXSUK -OVOW _Òc^UYaXSUK TKUS \OKVSdYaK¸ XK]d Y\cQSXKVXc Z\dcZKNOU _ÒcMSK Lc¸Y acZ_]dMdOXSO Z]K XK ]ZKMO\ S aZ_]dMdOXSO QY d ZYa\Y^OW NY NYW_ LOd _ÒcaKXSK a ^cW MOV_ ^YKVO^c D UYVOS a ^cW Z\dcZKNU_ MOVOW _Òc^UYaXSUK TKUS YZS]_TO XK]d XYac Z\dcZKNOU _ÒcMSK TO]^ dKZS]KXSO SXPY\WKMTS Y ]ZY]YLSO ]dMdOUKXSK Z]K a¸KÄMSMSOVK :YXSOaKÒ YLK ^O MOVO XSO ]¦ dO ]YL¦ ZYaS¦dKXO NVK^OQY L°NdSOWc ZY^\dOLYaKVS NaMR Z\dcZKNUa _ÒcMSK
2OZDZIA
:$
-dc ^Y XKZ\KaN° TO]^ acXSU Z\dOZ\YaKNdOXSK NYL\OT KXKVSdc Mdc ^OÒ MYÄ MY ZYaSXXSÄWc acWcÄVS¨ T_Ò aMdOÄXSOT s ZYNMdK] Z\KM XKN ]c]^OWOW Z\dON]^KaSYXcMR a NaMR ZYZ\dONXSMR \YdNdSK¸KMR)
9$
:OaXSO S TONXY S N\_QSO DKZOaXO ^Y Z\KaNK ÒO T_Ò aMdOÄXSOT ZYaSXXSÄWc ]S° NYWcÄVS¨ SÒ L°NdSOWc W_]SOVS Z\dOMRYacaK¨ SXPY\WKMTO Y ]ZY]YLSO ]dMdOUKXSK Z]K a¸KÄMSMSOVK KVO a \dOMdcaS]^YÄMS a¸KÄXSO ^KUS TO]^ MOV KXKVSdc$ _ZOaXS¨ ]S° ÒO XSO dKZYWXSK¸OÄ Y XSMdcW MY L°NdSO ZY^\dOLXO NY dKQaK\KX^YaKXSK ZYZ\KaXOQY NdSK¸KXSK ]c]^OW_ a \dOMdcaS]^cW ÄaSOMSO
:$ A TKUSOT ZY]^KMS L°NdSOWc
Z\dOMRYacaKVS SXPY\WKMTO Y ]ZY]YLSO ]dMdOUKXSK Z]K)
9$
3 ^Y TO]^ NYL\O Zc^KXSOj -Y aS°MOT T_Ò dK\Kd L°NdSO]d W_]SK¸ dXKVOШ XK XSO YNZYaSONÐj
!NALIZA
Zagadka projektowa 'lR®G o-plul pq--ul o¥¸ J¬|y¥oR®G y-l-tR² R¸ Jª- y|ªR ®¬-Jpl ¥¸¬Al-G p }R ly\|u¥oÔ lÖG A| "ª}o p|J u¥l 7¬É ª -ylR ®|7lÉ R-® "ª|lu ®-J-ylRu 7ÖJ®lR |pR²qRylRG o-plR u|J¬\lp-AoR y-qR¸¬ ª|ª-J®lÉ ª p|J®lR -qlp-AolF
Twoje zadanie:
|J-o ª®RqplR y|ªR |7lRp ¬G o-plAi 7ÖJ®lR | ®R7|ª-t ¬ Ru |7t¥a¥oÔA¬ J®ªlA®pl Jq- -
| pq-¬ DogDoor J|J-o y|ªÔ uR |JÖG p }- 7ÖJ®lR ®-l¬ª-É ª |7lRpAlR ly\|u-AoR | ||7lR ®A®Rp-yl- - ªt-²AlAlRq-G |-® J¥aÔ y|ªÔ uR |JÖG p }- |®ª|ql lyy¬u |7lRp |u y- |7lR-ylR ¬Ai ly\|u-Aol
R²ql u¥l® ª|ª-J®lÉ ®ul-y¬ ª o-plAip|qªlRp lyy¬Ai pq--Ai q¥7 uR |J-AiG ®-l® oR ª Jl-a-u-Ai pq- ®-ulR®A®|y¬Ai |yl¸Ro
| Jl-a-u}ª pq- J|J-o y| - plG p }R }´ylRo ®¬|uyÔ lG J| A®Ra| t¥¸Ô lAi - ¬7¥ ¬ l uR |J¬ |-® o-p |yR |ªlyy¬ J®l-t-É
$IAGRAMÎW KLAS UYWALIwMY W ROZDZIALE PRZEDSTAWIAJ ONE PODSTAWOWE ELEMENTY Z JAKICH SKADA SIÅ KOD APLIKACJI 0AMIÅTAJ E TO S ATRYBUTY KLASY KTÎRE ZAZWYCZAJ ODPOWIADAJ ZMIENNYM SKADOWYM KLASYb
.YQ.YY\ YZOX$ LYYVOKX
cZO$ >cZO QO^,KMUAYYN$ AYYN QO^>YZAYYN$ AYYN WK^MRO]3X]^\_WOX^=ZOM$ LYYVOKX 4RÎJKTNA W ODRÎNIENIU OD ZWYKEJ STRZAKA OZNACZA GENERALIZACJÅ 'ENERALIZACJA SUY DO POKAZANIA E JEDNA KLASA TAKA JAK -ANDOLIN DZIEDZICZY ZACHOWANIE OD KLASY BARDZIEJ OGÎLNEJ TAKIEJ JAK )NSTRUMENT
$OBRY PROJEKT ELASTYCZNE OPROGRAMOWANIE
ABYw :AGNIJ RÎG TEJ STRONY Z PÎzNIEJ KIEDY ZAPOMNIS 5-, NOTACJI I SYMBOLI JÅZYKA zÁ MÎG SZYBKO JE ODNALE
Ściągawka z UML-a 4KU ^Y XKdcaKWc a 4K`SO
4KU ^Y XKdcaKWc a ?76_
5VK]K KL]^\KUMcTXK
5VK]K KL]^\KUMcTXK
DaS¦dOU
+]YMTKMTK
.dSONdSMdOXSO
1OXO\KVSdKMTK
+Q\OQKMTK
+Q\OQKMTK
Nie ma
niemądrych pytań
:$
-dc TO]^ TO]dMdO N_ÒY aS°MOT ^cZa ]cWLYVS S XY^KMTS _ÒcaKXcMR a T°dcU_ ?76 U^\cMR L°N° ]S° W_]SK¸ XK_Mdc¨)
4KU ^Y Z\dON]^KaSKWc a ?76_ 8KdaK UVK]c dKZS]KXK U_\]ca¦
9$
0KU^cMdXSO a ?76_ _ÒcaKXcMR TO]^ aSOVO ]cWLYVS S XY^KMTS TONXKU ^Y ac¸¦MdXSO YN -SOLSO dKVOÒc SV_ d XSMR L°NdSO]d _ÒcaK¨ Y\Kd SVO dKZKWS°^K]d ASOVO Y]L _ÒcaK TONcXSO ZYN]^KaYacMR OVOWOX^a T°dcUK ?76 U^\O T_Ò ZYdXK¸OÄ S MK¸UYaSMSO SW ^Y NY ]dMd°ÄMSK ac]^K\MdK ZYNYLXSO TKU SMR UVSOX^YW S ]dOPYW =¦ TONXKU ^KUÒO Y]YLc U^\O XKZ\KaN° V_LS¦ LKaS¨ ]S° ?76OW S ]^Y]_T¦ a]dc]^USO _NY]^°ZXSKXO Z\dOd XSOQY ]d^_MdUS 8KZ\KaN° a]dc]^UY dKVOÒc YN -SOLSO$ Y SVO ^cVUY TO]^OÄ a ]^KXSO Z\dON]^KaS¨ ]aT Z\YTOU^ ^Y WYÒO]d _ÒcaK¨ ?76K a ^KUS ]ZY]L a TKUS ^Y dY]^K¸Y Z\dOaSNdSKXO
JESTEu TUTAJ
+LASY ABSTRAKCYJNE I INSTRUMENTY
DKMdXSTWc ^aY\dc¨ UYN XYaOQY Z\YQ\KW_ ac]d_USaKaMdOQY cZO$ >cZO QO^,KMUAYYN$ AYYN QO^>YZAYYN$ AYYN WK^MRO]3X]^\_WOX^=ZOM$ LYYVOKX
Builder builder; String model; Type type; Wood backWood; Wood topWood;
+LASA )NSTRUM JAK KLASA )NST ENT3PEC PODOBNIE ZDEFINIOWANA RUMENT ZOSTAA A DLA KADEGO JAKO ABSTRAKCYJNA ZOSTAN UTWOR TYPU INSTRUMENTU OD NIEJ KLASY ZONE DZIEDZICZCE POCHODNE
public InstrumentSpec(Builder builder, String model, Type type, Wood backWood, Wood topWood) { this.builder = builder; 4EN KONSTRUKTOR JEST BARDZO this.model = model; PODOBNY DO NASZEGO STAREGO KONSTRUKTORA KLASY 'UITARb this.type = type; this.backWood = backWood; NÅLIwMY this.topWood = topWood; bZ T RÎNIC I USUwCIWOwCI E WA TKI ZYS WS GO NIE Z } PUJ WE WSZYSTKICH
KTÎRE NIE WYSTÅ JAK NUM3TRINGS INSTRUMENTACH TAKIE BDz STYLE
class in+ strument+ Spec { matches }
// wszystkie metody do zapisu i odczytu właściwości: // builder, model, type i tak dalej
3X]^\_WOX^=ZOMTK`K
}
public boolean matches(InstrumentSpec otherSpec) { if (builder != otherSpec.builder) return false; if ((model != null) && (!model.equals(“”)) && (!model.equals(otherSpec.model))) 4A WERSJA METODY return false; MATCHES ROBI DO if (type != otherSpec.type) TO CZEGO MONA KADNIE OCZEKIWAÁ PORÎWNUJE WAwCIW return false; OwCI W TEJ KLASIE if (backWood != otherSpec.backWood) Z WAwCIWOwCIAMI return false; DOSTÅPNYMI W INN OBIEKCIE REPREZEN YM if (topWood != otherSpec.topWood) JAKw SPECYFIKACJÅTUJCYM return false; TÅ BÅDZIEMY JEDNA -ETODÅ return true; PRZESONIÁ W KLA K MUSIELI SACH } POCHODNYCHb
JESTEu TUTAJ
$OKOÊCZENIE KLAS SPECYFIKACJI
DKTWSTWc ]S° UYNOW UVK]c 1_S^K\=ZOMj | ®-p|ÍA®Ryl¥ -A y-J p|JRu pq-¬ InstrumentSpec ®u|J¬\lp|ª-ylR pq-¬ GuitarSpec ylR |ªlyy| l ®¬|®¬É y-ouylRo®Ra| |7qRu¥
C ROZSZERZA KLASÅ +LASA 'UITAR3PE PODOBNIE JAK KLASA EC 3P )NSTRUMENT KLASÅ )NSTRUMENT 'UITAR ROZSZERZA
public class GuitarSpec extends InstrumentSpec { private int numStrings;
: TYM E GITARA MUSI ZAWIERAÁ WAw NUM3TRINGS NIE JEST ONA DOSTÅPNA CIWOwÁ W KLASIE BAZOWEJ )NSTRUMENT
public GuitarSpec(Builder builder, String model, Type type, int numStrings, Wood backWood, Wood topWood) { super(builder, model, type, backWood, topWood); this.numStrings = numStrings;
4EN KONSTRUKTOR DO INFORMACJI PRZECHOWYWANYCH W KLASIE BAZO WEJ )NSTRUMENT3PEC s DODAJE WAwCIWO s wCI CHARAKTERYSTYCZNE DLA GITAR
} public int getNumStrings() { return numStrings; }
// Przesłonięcie metody matches() z klasy bazowej public boolean matches(InstrumentSpec otherSpec) { if (!super.matches(otherSpec)) return false; if (!(otherSpec instanceof GuitarSpec))
METODY O TEJ MATCHES UYWA 4A WERSJA METODYEFINIOWANEJ W KLASIE BAZOWEJ SAMEJ NAZWIE ZD NUJE DODATKOWE PORÎWNANIA A NASTÅPNIE WYKOCZY PRZEKAZANA SPECYFIKACJA BY UPEWNIÁ SIÅ GO TYPU I SPRAWDZIÁ WARTOwCI JEST ODPOWIEDNIE AKTERYSTYCZNYCH DLA GITAR WAwCIWOwCI CHAR
3X]^\_WOX^=ZOM
return false; GuitarSpec spec = (GuitarSpec)otherSpec;
WYNOV$ =^\SXQ
if (numStrings != spec.numStrings)
QO^,_SVNO\$ ,_SVNO\ QO^7YNOV$ =^\SXQ QO^>cZO$ >cZO QO^,KMUAYYN$ AYYN QO^>YZAYYN$ AYYN WK^MRO]3X]^\_WOX^=ZOM$ LYYVOKX
return false; return true; } }
1_S^K\=ZOM X_W=^\SXQ]$ SX^ QO^8_W=^\SXQ]$ SX^ WK^MRO]1_S^K\=ZOM$ LYYVOKX
2OZDZIA CZÃu¿
class Guitar { Spec { matches ()
1_S^K\=ZOMTK`K
$OBRY PROJEKT ELASTYCZNE OPROGRAMOWANIE
jY\Kd 7KXNYVSX=ZOM | ®u|J¬\lp|ª-yl¥ pq-¬ GuitarSpec ª|®RylR y|ªRo pq-¬ MandolinSpec 7ÖJ®lR 7-J®| | R 7lR pq-¬ Ô 7|ªlRu 7-J®| |J|7yRG ® ¬u ¸R ª pq-lR MandolinSpec u¥lu¬ J|J-É oRJyÔ ®ulRyyÔ pt-J|ªÔ t¥¸ÔAÔ J| ®RAi|ª¬ª-yl- R\RRyAol J| ¬q¥ u-yJ|qly¬ yF q¥7
l ylRA| ®u|J¬\lp|ª-É uR |JÖ matches()F public class MandolinSpec extends InstrumentSpec {
WAwCIWOwÁ STYLE 4YLKO MANDOLINY MAJ NIE PRZENIEwLIwMY ODU POW O TEG Z WAwNIE NT3PEC JEJ DO KLASY )NSTRUME
private Style style;
public MandolinSpec(Builder builder, String model, Type type, Style style, Wood backWood, Wood topWood) { super(builder, model, type, backWood, topWood); this.style = style; } public Style getStyle() { return style; } // Przesłonięcie metody matches() z klasy bazowej public boolean matches(InstrumentSpec otherSpec) { if (!super.matches(otherSpec)) return false; if (!(otherSpec instanceof MandolinSpec)) return false; MandolinSpec spec = (MandolinSpec)otherSpec; if (!style.equals(spec.style)) return false; return true; }
+LASA -ANDOLIN3 PE I 'UITAR3PEC KO C PODOBNIE JAK BAZOWEJ W CELU RZYSTA Z METODY KLASY WY PORÎWNANIA SPEC KONANIA PODSTAWOWEGO POTEM RZUTUJE PRYFIKACJI A DOPIERO -ANDOLIN3PEC BYZEKAZANY OBIEKT DO TYPU CHARAKTERYSTYCZN WYKONAÁ PORÎWNANIA E TYLKO DLA MAND OLIN
public enum Style { A, F;
} }
7KXNYVSX=ZOM QO^=^cVO$ =^cVO QO^8_W=^\SXQ]$ SX^ WK^MRO]7KXNYVSX=ZOM$ LYYVOKX class Guitar { Spec { matches ()
]^cVO
=^cVO ^Y=^\SXQ$ =^\SXQ
"ÅDZIESZ POTRZEBOWA NOWEGO TYPU WYLICZENIOWEGO s 3TYLE :DEFINIUJ W NIM DWIE WARTOwCI ! ORAZ &
enum Style { toString() }
=^cVOTK`K
7KXNYVSX=ZOMTK`K
JESTEu TUTAJ
0RACA NAD KODEM APLIKACJI 2YuKA
5YºMdOXSO Z\KM XKN KZVSUKMT¦ ac]d_USaKaMd¦ 8/ dWSKXc a KZVSUKMTS \dc U\YUS ^aY\dOXSK a]ZKXSK¸OQY YZ\YQ\KWYaKXSK ZY \Kd UYVOTXc -dc KZVSUKMT° ac]d_USaKaMd¦ K UYX]^\_UMTK ]^Y]YaKXK a UYNdSO YNQ\caK ZYNaTX¦ \YV° D TONXOT ]^\YXc TO]^ _ÒcaKXK NY NOPSXSYaKXSK dKMRYaKº U^\O WYQ¦ ac]^°ZYaK¨ a aSOV_ ^cZKMR K d N\_QSOT TO]^ XSOdacUVO aKÒXK NVK UVK] U^\O _ÒcaKT¦ ^cMR ^cZa
i-dcW TO]^ IIIIIIIIIIIIIIIII)p
4UTAJ ZAPISZ PYTA KTÎRE ODPOWIEDz NIE NA PRZEDSTAWILIwMY WAwNIE
PYTANIA I ODPOWIEDZI
i-dcW TO]^ 38>/OXXS]:VKcO QO^=ZY\^$ =^\SXQ ZVKc QO^=ZY\^$ =^\SXQ ZVKc
ZVKc
l®ÔA p|J p|®¬ -oÔA¬ ® -plAi pq-G ®-ª®R 7ÖJ®lR® ulRÉ JªlR u|¸qlª|²Al lRª®Ô ® ylAi oR y-l-ylR p|J¥G p }¬ |R¥oR 7R®|²RJyl| y- |J|ªlRJylRo pq-lR |Ai|JyRoG -plRo o-p FootballPlayer J¥aÔ W y-l-ylR p|J¥ |R¥oÔARa| yly R\RolRG ª y-®¬u ®¬-Jp¥ y|l |y y-®ªÖ Athlete R²ql ®y-oJ®lR® lÖ ª -plRo ¬ ¥-AolG ®-ª®R |ªlylRyR² ª|®¬É p|J ¥¸¬ª-oÔA¬ ly R\Ro¥G - ylR luqRuRy -Aol
>OKW
aXSK DKZO XYĨ cMd OVK]^
&&SX^O\PKMO(( +^RVO^O QO^=ZY\^$ =^\SXQ ZVKc
KNN:VKcO\)))
,K]OLKVV:VKcO\ *AKIEGO TYPU POWINIEN BYÁ PARAMETR
=^KaSK YQ\KXSMdOXSK
>aY\dOXSO UYN_ acUY\dc]^_T¦MOQY SX^O\POT]c K XSO UVK]c U^\O TO SWZVOWOX^_T¦ dKZOaXSK WYÒVSaYĨ ¸K^aOQY \Yd]dO\dKXSK YZ\YQ\KWYaKXSK >aY\d¦M UYN _ÒcaKT¦Mc SX^O\POT]_ dKZOaXSK]d W_ WYÒVSaYĨ YZO\YaKXSK XK a]dc]^USMR UVK]KMR NdSONdSMd¦McMR YN ^OQY SX^O\POT]_ s XKaO^ XK UVK]KMR U^\O TO]dMdO XSO dY]^K¸c dNOPSXSYaKXO
ZVKc
q-A®Ra| |®ªlÔ®-ylR | u- -p J¥¸R ®y-A®RylR J¬¸ ®-Rªyl- "ª|oRo -qlp-Aol 7-J®| J¥¸Ô Rq- ¬A®y|²É }¸ ®-ul- |R|ª-yl- ¬qp| l ª¬tÔA®ylR y- oRJyRoG ²Al²qR |pR²q|yRo pq-lR |Ai|JyRo W -plRo o-p BaseballPlayer W ¥®¬p¥oRu¬ u|¸qlª|²É |R|ª-yl- y- ®y-A®ylR 7-J®lRo |a}qy¬u ¬lR Athlete ®y-A®- |G ¸R p|J -qlp-Aol 7ÖJ®lR ª -ylR |R|ª-É y- J|ª|qyRo pq-lR |Ai|JyRo ly R\Ro¥ AthleteG -plRo o-p TennisPlayer q¥7 HockeyPlayerG - y-ªR y- pq--Ai |Ai|Jy¬AiG p }R oR®A®R y-ªR ylR ®| -t¬ ®-|oRp |ª-yR u|¸R y- pq-lR CricketPlayer
/BIEKTOWA KATASTROFA
?XSUKXSO \cdcUK
=¸KaXS Z\YTOU^KXMS
5YX]^\_UMTO _ÒcaKXO a UYNdSO
?^\dcWKXSO S aSOVYU\Y^XO _ÒcMSO
8O\aSMK YZ\YQ\KWYaKXSK
=ZYÄ\N a]dc]^USMR dK]KN Z\YTOU^YaKXSK YLSOU^YaOQY ^Y a¸KÄXSO YXK WYÒO ]S° ZY]dMdcMS¨ _MR\YXSOXSOW Z\YQ\KWS]^a YN XKTaS°U]dOT VSMdLc Z\YLVOWa ZYTKaSKT¦McMR ]S° ZYNMdK] _^\dcWKXSK S ZSOV°QXKMTS UYN_ + ^Y NdS°US dQ\_ZYaKXS_ a TONXcW WSOT]M_ a]dc]^USMR dWSKX a dKMRYaKXS_ YLSOU^_
i-dcW TO]^ IIIIIIIIIIIIIIIII)p PYTANIA I ODPOWIEDZI
i-dcW TO]^ 2/CD+-4+)p iRuR ¬®-Aol l-ql²u¬ o¥¸ A-tplRu ||G ®RJR ª®¬ plu ª p|y Rp²AlR ®-|7lRa-yl|ªlRq-yl¥ p|J¥ RJy-p iRuR ¬®-Ao- Ai|yl y- ylR ¬qp| ®RJ ®ª¬A®-oy¬u |ªlRq-ylRu \-auRy }ª p|J¥ uR |JÔ p|l¥oklkªpqRo RuR ¬®-Ao- |u-a- y-u -p¸R ®-7R®lRA®-É pq-¬ ®RJ ylR| ®R7y¬ul ®ul-y-ul +- p-¸J¬u -®Ru plRJ¬ ª ª|®|yRo -qlp-Aol |o-ªl lÖ o-plR² ®-Ai|ª-ylRG p }RG o-p |JRo®Rª-®G ª ®¬®t|²Al u|¸R ¥qRA u|J¬\lp-AolG | ®-RªyR 7ÖJ®lR® AiAl-t |JJ®lRqlÉ oR |J ¬Ai \-auRy }ª -qlp-AolG p }R ªRJt¥a ª®RqplRa| -ªJ||J|7lRÍ ª- ylR 7ÖJÔ ®ulRyl-É lÖ ®7¬ A®Ö | yy¬ul t|ª¬G ®-ª®R |ªlylRyR² }7|ª-É |JJ-ª-É iRuR ¬®-Aol R \-auRy ¬ p|J¥G p }R ¥qRa-oÔ ®ul-y|u
/TO PRZYKAD BARDZO PROSTEJ KLASY REPREZENTUJCEJ ARTYSTÅ MALARZA KTÎRY MOE WYKONYWAÁ TRZY OPERACJE PRZYGOTOWAÁ NOWE SZTALUGI WYCZYwCIÁ PÅDZLE I ROZPOCZÁ TWORZENIE NOWEGO DZIEA
/PERACJE PRZYGO TO SZTALUG I CZYSZC WYWANIA ZENIA PÅDZLI ZAPEWNE NIE SIÅ ZMIENIAÁ ZBYT BÅD CZÅSTO
:KSX^O\ Z\OZK\O/K]OV MVOKX,\_]RO] ZKSX^
LOWANIEM 3POSÎB *EDNAK CO Z SAMYM MA DZO RÎNYb :MIENIAÁ BAR BYÁ E MO MALOWANIA UYWANIA SAMYCH MOE SIÅ TAKE SPOSÎB wÁ MALOWANIA OBRAZÎW BKO SZY PÅDZLIb A NAWET TYM MIEJSCU KLASY ! ZATEM TO WAwNIE W ZMIANY 0AINTER MOG ZACHODZIÁ
'¬aqÔJ- y- |G ¸R pq-- Painter |l-J- JªlR uR |J¬G p }R Ô -A®Ro -tRG |-® uR |JÖ paint()G p }- y- Rªy| 7ÖJ®lR lÖ ®y-A®ylR ®ulRyl-É ª |®A®Ra}qy¬Ai luqRuRy -Ao-Ai ®- Ru }7¥ou¬ iRuR ¬®|ª-É R \-auRy ¬ pq-¬G p }R u|aÔ lÖ ®ulRyl-É W ª ¬u ARq¥ ¥¥Íu¬ luqRuRy -AoÖ ||7¥ u-q|ª-yl- |®- pq-Ö Painter
(ERMETYZOWALIwMY KOD KTÎRY MOE ULEGAÁ ZMIANOM s USUNÅLIwMY GO Z KLASY 0AINTER
:KSX^O\
:KSX^=^cVO
Z\OZK\O/K]OV MVOKX,\_]RO] ]O^:KSX^=^cVO:KSX^=^cVO
QO^=^cVO$ =^\SXQ ZKSX^
:AUWA I W TY KORZYSTAMY Z INT M MIEJSCU Z JEGO IMPLEMENTERFEJSU A NIE ACJI
7YNO\X:KSX^=^cVO ZKSX^
4ERAZ WSZYSTKIE ODMIENNOwCI ZOST UMIESZCZONE POZA KLAS 0AINTER AY W RÎNYCH KLASACH IMPLEMENTUJCYC H INTERFEJS 0AINT3TYLE
/BIEKTOWA KATASTROFA
)NTERFEJS REPREZEN 0AINT3TYLE KTÎRY CZÅTUJE STYL MALOWA ZMIANOM STO MOE ULEGA NIA Á
=_\\OKV:KSX^=^cVO ZKSX^
3WZ\O]]SYXS]^ ZKSX^
c
-_LS]^:KSX^=^cVO ZKSX^
?XSUKXSO \cdcUK
=¸KaXS Z\YTOU^KXMS
5YX]^\_UMTO _ÒcaKXO a UYNdSO
?^\dcWKXSO S aSOVYU\Y^XO _ÒcMSO
8O\aSMK YZ\YQ\KWYaKXSK
4O]^ ZYaYNOW UK^K]^\YPc S ÄWSO\MS aSOV_ ÐVO dKZ\YTOU^YaKXcMR P\KQWOX^a YZ\YQ\KWYaKXSK NVK^OQY UKÒNK UVK]K ZYaSXXK ]^K\K¨ ]S° Lc WSO¨ NY XSOT ^cVUY TONOX ZYaN
i-dcW TO]^ IIIIIIIIIIIIIIIII)p PYTANIA I ODPOWIEDZI
i-dcW TO]^ D73+8+ )p ¥¸ ªlR®G ¸R oRJ¬y¬u RªylplRu ª |a-u|ª-yl¥ Ô +) |a-u|ª-ylRG p }R ylR oR J|7®R ®-|oRp |ª-yRG ®R -oR J®l-t-É y-ªR | ª|ª-J®Ryl¥ ylR®y-A®y¬Ai ®ul-yG oRJy-p ª-yl-tR ||a-u|ª-ylR u|¸y- u|J¬\lp|ª-É 7R® ªlÖp®¬Ai |7qRu}ª -o| ®¬u ||7Ru ¥RªylRyl- lÖG ¸R y-®R ||a-u|ª-ylR 7ÖJ®lR |J|yR y7tÖJ¬G oR ®-J7-ylR | |G 7¬ p-¸J- pq-- ul-t- ¬qp| oRJRy |ª}J J| ®ul-y¬ yy¬ul t|ª¬G |ªlylRyR² JÔ¸¬É J| ®ulylu-ql®|ª-yl- -ªJ||J|7lRÍ ª-G ¸R J-y- pq-- 7ÖJ®lR u¥l-t- lÖ ®ulRylÉG |®R® ®uylRo®RylR qlA®7¬ A®¬yylp}ªG p }R u|aÔ lÖ ®u¥lÉ J| ª|ª-J®Ryl- ®ul-y 0RZYJRZYJ SIÅ METODOM ZDEFINIOWANYM W TEJ KLASIE )CH DZIAANIE JEST ZWIZANE Z RUSZANIEM I ZATRZYMYWANIEM SIÅ SPOSOBEM WYMIANY OPON SPOSOBEM PROWADZENIA SAMOCHODU PRZEZ KIEROWCÅ MYCIEM SAMOCHODU A NAWET ZE SPRAWDZANIEM I WYMIAN OLEJU
+_^YWYLSVO *AK MONA SOBIE WYOBR "!2$:/ 7)%,% PRZYCZAZIÁ ISTNIEJE DOPROWADZIÁ DO KONIEC YN KTÎRE MOGYBY KLASY *EwLI MECHANIK ZNOwCI ZMIANY TEJ SPRAWDZANIA STANU OLEZMIENI SPOSÎB JU ALBO KIEROWCA ZMIENI SPOSÎB PROWADZE BDz TE JEwLI ZOSTANIE NIA SAMOCHODU LOKALNA MYJNIA SAMOCH UNOWOCZEwNIONA ODOWA TO BÅDZIEMY MUSIELI WPROWADZIÁ STO SOWNE ZMIANY W KODZIE TEJ KLASY
]^K\^ ]^YZ MRKXQO>S\O]>S\O EG N\S`O aK]R MROMU9SV QO^9SV$ SX^
R²ql ®¬o®¬® lÖ o-plRo² pq-lR l J|oJ®lR® J| ªyl|p¥G l¸ u|¸R l ylRÉ ªlÖARo yl¸ oRJRy |ª}J J| ª|ª-J®Ryl- ª ylRo u|J¬\lp-AolG | y-o-ªJ||J|7ylRo 7ÖJ®lR | ¬ay-tRuG ¸R - pq-- }7¥oR R-ql®|ª-É ®7¬ ªlRqR ®-J-Í ' -plu ®¬-Jp¥ ®- -y}ª lÖG A®¬ u|¸y- |J®lRqlÉ \¥ypAo|y-qy|²É l |®7lÉ pq-Ö y- plqp- uylRo®¬AiG ® p }¬Ai p-¸J- 7ÖJ®lR R-ql®|ª-É ¬qp| oRJy| ®-J-ylR W - ®- Ru 7ÖJ®lR l ylRÉ ¬qp| oRJRy |ª}JG p }¬ u}at7¬ ®u¥lÉ y- J| oRo u|J¬\lp-Aol +ADA Z KLAS $RIVE #AR7ASH WYKONU R ORAZ OPERACJÅ A ZATE JE TYLKO *%$. M ICH ZMIANY BÅDZ KONIECZNOwÁ IE SIÅ POJAWIAÁ JESZCZE RZADZIEJ
+_^YWYLSVO ]^K\^ ]^YZ QO^9SV$ SX^
-K\AK]R aK]R+_^YWYLSV
.\S`O\ +LASA !UTOMOBIL E N\S`O+_^YWYLSVO PROSTSZA /BSUGU STAA SIÅ :.!#:.)% RUSZANIA ZATRZYM JE ONA JEDYNIE OPERACJE WARTOwCI ATRYBUTU YWANIA SIÅ ORAZ ZWRACANIA 4ERAZ JEST ZNACZN OKREwLAJCEGO STAN OLEJU IE BARDZIEJ ODPO RNA NA ZMIANY
/BIEKTOWA KATASTROFA
7OMRKXSM MROMU9SV+_^YWYLSVO MRKXQO>S\O]+_^YWYLSVO >S\O EG
'DYBYw CHCIA TO PRAWDOPODOBNIE MÎGBYw ROZDZIELIÁ NAWET TE DWIE FUNKCJE I ROZDZIELIÁ FUNKCJONALNOwÁ KLASY -ECHANIC NA BARDZIEJ SZCZEGÎOWE KLASY POCHODNE
$O TEJ PORY RADZIEv SOBIE CAKIEM DOBRZE JEDNAK TERAZ NADSZED CZAS NA /34!4%#:.~ +!4!342/& 0ONIEJ PRZEDSTAWIONY ZOSTA DIAGRAM KLAS APLIKACJI KTÄRA DELIKATNIE MÄWIC NIE JEST ZBYT ELASTYCZNA !BY UDOWODNI· E NAPRAWD» JESTEv W STANIE UNIKN· OBIEKTOWEJ KATASTROFY ZAPISZ PONIEJ JAK ZMIENIBYv PROJEKT TEJ APLIKACJI "»DZIESZ MUSIA WYKORZYSTA· WSZYSTKIE PRZEDSTAWIONE WCZEvNIEJ ZASADY PROJEKTOWANIA OBIEKTOWEGO A ZATEM NIE SPIESZ SI»b I POWODZENIA
Ostateczna
K atastrofa .O]]O\^-Y_X^O\
.O]]O\^
Y\NO\-YXO3MO-\OKWEG >YZZSXQEG$ -YXO Y\NO\=_XNKO3MO-\OKWEG >YZZSXQEG =c\_ZEG$ =_XNKO KNN>YZZSXQ-YXO >YZZSXQ$ -YXO KNN>YZZSXQ=_XNKO >YZZSXQ$ =_XNKO
]O\`O
=_XNKO SMO-\OKW$ 3MO-\OKW EG ]c\_Z]$ =c\_Z EG ^YZZSXQ]$ >YZZSXQ EG KNN3MO-\OKW3MO-\OKW KNN=c\_Z=c\_Z KNN>YZZSXQ>YZZSXQ ]O\`O
>YZZSXQ
-RO\\SO]
SMO-\OKW$ 3MO-\OKW ^YZZSXQ]$ >YZZSXQ EG KNN3MO-\OKW3MO-\O KNN>YZZSXQ>YZZSXQ ]O\`O
3MO-\OKW
NO]M\SZ^SYX$ =^\SXQ
^K]^O$ =^\SXQ
QO^.O]M\SZ^SYX$ =^\SXQ
QO^>K]^O$ =^\SXQ ]O\`O
ARSZZON-\OKW 8_^]
-YXO
=c\_Z
@KXSVVK
SXQ\ONSOX^]$ =^\SXQ EG QO^3XQ\ONSOX^]$=^\SXQ EG ]O\`O
]O\`O
-RYMYVK^O :OZZO\WSX^ 7SX-RYMYVK^O-RSZ
2Y^0_NQO -K\KWOV
PYTANIA I ODPOWIEDZI
Ostateczna
K atastrofa 7 KLASIE $ESSERT#OUN TER UYWANE S IMPLEM INTERFEJSU $ESSERT 4E ENTACJE JEDN s ORDER$ESSERT DWIE METODY MOEMY ZASTPIÁ s KTÎRA BÅDZIE ZW RAC TYPU $ESSERT A ZATEM BÅDZIE UYWAÁ INTERFEJSAÁ OBIEKT U
Odpowiedzi
.O]]O\^-Y_X^O\
.O]]O\^ ]O\`O
Y\NO\-YXO3MO-\OKWEG >YZZSXQEG$ -YXO Y\NO\=_XNKO3MO-\OKWEG >YZZSXQEG =c\_ZEG$ =_XNKO KNN>YZZSXQ-YXO >YZZSXQ$ -YXO KNN>YZZSXQ=_XNKO >YZZSXQ$ =_XNKO
-ONA WSKAZAÁ WIÅCEJ NI JEDEN POWÎD KTÎRY MÎGBY NAS ZMUSIÁ DO ZMIANY KLASY $ESSERT#OUNTER JEwLI ZMIENI SIÅ PROCES ZAMAWIANIA ORAZ JEwLI ZMIENI SIÅ SPOSÎB W JAKI DO KLAS #ONE ORAZ 3UNDAE DODAWANE S OBIEKTY 4OPPING
+LASA 3YRUP JEST IMPLEMENTACJ INTERFEJSU 4OPPINGb 4AK NAPRAWDÅ NIE POTRZEBUJEMY METODY SUCEJ SPECJALNIE DO DODAWANIA WAwNIE TEGO TYPU *EST TO BOWIEM PRZYKAD KODOWANIA POD KTEM IMPLEMENTACJI
Nie ma
=_XNKO SMO-\OKW$ 3MO-\OKW EG ]c\_Z]$ =c\_Z EG ^YZZSXQ]$ >YZZSXQ EG KNN3MO-\OKW3MO-\OKW KNN=c\_Z=c\_Z KNN>YZZSXQ>YZZSXQ ]O\`O
-YXO SMO-\OKW$ 3MO-\OKW EG ^YZZSXQ]$ >YZZSXQ EG KNN3MO-\OKW3MO-\OKW KNN>YZZSXQ>YZZSXQ ]O\`O
NAPRAWDÅ 30/2/ 7 NASZYM PRZYKADZIE WYSTÅPUJE INNIwMY SPRÎBOWAÁ IMPLEMENTACJI METODY SERVE 0OWMENTY KODU I UMIEwCIÁ HERMETYZOWAÁ ZMIENIAJCE SIÅ FRAG DESERÎW W JEDNYM CAY KOD ZWIZANY Z SERWOWANIEM SERWOWANIA ULEGNIE ES MIEJSCU $ZIÅKI TEMU JEwLI PROC NIAÁ 73:934+)#( ZMIANIE NIE BÅDZIEMY MUSIELI ZMIEDA SERVE METO JEST KLAS W KTÎRYCH UYWANA
niemądrych pytań
9$
AO aMdOÄXSOT]dOT Md°ÄMS U]S¦ÒUS T_Ò USVUK \Kdc WSK¸OÄ YUKdT° Z\dOUYXK¨ ]S° ÒO TOÄVS ^cUY dK_aKÒc]d WYÒVSaYĨ ZYaSOVKXSK UYN_ ^Y ZYaSXSOXOÄ ZY]d_UK¨ ]dKX]c dK]^Y]YaKXSK RO\WO^cdKMTS A ^cW Z\dcU¸KNdSO d N_Ò¦ NYd¦ Z\KaNYZYNYLSOº]^aK WYÒOWc dK¸YÒc¨ ÒO ]O\aYaKXSO YLSOU^a Sundae XSO L°NdSO ]S° ]dMdOQVXSO \ÒXS¨ YN ]O\aYaKXSK YLSOU^a Cone
A¸KÄXSO a ^OX ]ZY]L _NK¸Y -S ]S° RO\WO^cdYaK¨ P\KQWOX^c UYN_ U^\O WYQ¦ _VOM dWSKXSO a XK]dcW Z\dcZKNU_ TO]^ ^Y UYN WO^YNc serve() Y\Kd dKZOaXS¨ ÒO NVK UKÒNOT UVK]c L°NdSO S]^XSO¨ ^cVUY TONOX ZYaN NY aZ\YaKNdKXSK dWSKX
+ dK^OW WQ¸LcÄ ]^aY\dc¨ XYa¦ UVK]° Z\dcU¸KNYaY$ DessertService S a XSOT _WSOÄMS¨ WO^YN° serve() 8K]^°ZXSO a]dc]^USO UVK]c aMRYNd¦MO a ]U¸KN KZVSUKMTS MdcVS SWZVOWOX^_T¦MO SX^O\POT]c Dessert IceCream Y\Kd Topping ZYaSXXc UY\dc]^K¨ d WO^YNc DessertService.serve() 4OÄVS WO^YNK service() _VOQXSO dWSKXSO ^Y L°NdSO]d W_]SK¸ dKU^_KVSdYaK¨ UYN ^cVUY a TONXcW WSOT]M_ KZVSUKMTS$ UVK]SO DessertService
4KU ]S° NYWcÄVSVSÄMSO ÒO XKVOÒc RO\WO^cdYaK¨ WO^YN° ]O\`O S _]_X¦¨ T¦ d ^cMR a]dc]^USMR UVK]) 4K TKUYÄ ^Y Z\dOQKZS¸OW
/BIEKTOWA KATASTROFA
:$
:ARÎWNO INTERFEJS 4OPPING JAK I )CE#REAME UDOSTÅPNIAJ METODÅ SERVE I WYGLDAJ DOSYÁ PODOBNIEb -OE MOGLIBYwMY WYODRÅBNIÁ Z NICH WSPÎLNE WAwCIWOwCI I PRZENIEwÁ JE DO JAKIEJw NOWEJ KLASY BAZOWEJ
DKÎW PRZYPA SZOwCI SPÎLNYCH K IÅ W 7 ZI DO LANIE W WYDZIE OwCI PROWAD IW C w WA YZACJI HERMET
3MO-\OKW ^K]^O$ =^\SXQ QO^>K]^O$ =^\SXQ ]O\`O
>YZZSXQ @KXSVVK
NO]M\SZ^SYX$ =^\SXQ QO^.O]M\SZ^SYX$ =^\SXQ
-RYMYVK^O :OZZO\WSX^
ARSZZON-\OKW 8_^] -RO\\SO]
7SX-RYMYVK^O-RSZ
=c\_Z SXQ\ONSOX^]$ =^\SXQ EG QO^3XQ\ONSOX^]$=^\SXQ EG ]O\`O
8_^]
2Y^0_NQO -K\KWOV
PYTANIA I ODPOWIEDZI
7RÌ¿MY DO APLIKACJI WYSZUKIWAWCZEJ 2YuKA
7SPANIALE BYO GOvCI· W PROGRAMIE TAKIEGO ZAWODNIKA JAK 4Y I NAPRAWD» BARDZO BYvMY CHCIELI ZAPROSI· #I» W PRZYSZYM TYGODNIU JEDNAK WAvNIE DOSTALIvMY BARDZO PILN WIADOMOv· OD a2YvKA #ZY WIESZ MOE COv O KONTYNUACJI PRAC NAD JEGO APLIKACJ DO WYSZUKIWANIA INSTRUMENTÄW
>O\Kd TO]^OÄ T_Ò QY^a ZYXYaXSO dWSO\dc¨ ]S° d Z\YLVOWOW XSOOVK]^cMdXOQY UYN_ KZVSUKMTS