Head First Object-Oriented Analysis and Design [Edycja polska] 9788324660506, 9788324609659, 8324609652, 832466050X

Systemy informatyczne stają się coraz bardziej rozbudowane. Programowanie obiektowe znacznie ułatwia ich tworzenie i póź

192 17 39MB

Polish Pages 616 [610] Year 2008

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Spis treści
Wprowadzenie
Dla kogo jest ta książka?
Wiemy, co sobie myślisz
Metapoznanie: myślenie o myśleniu
Zmuś swój mózg do posłuszeństwa
Ważne uwagi
Recenzenci techniczni
Podziękowania
1. Tu się zaczyna wspaniałe oprogramowanie
Rock-and-roll jest wieczny!
Nowa elegancka aplikacja Ryśka…
Co przede wszystkim zmieniłbyś w aplikacji Ryśka?
Doskonałe oprogramowanie… ma więcej niż jedną z wymienianych już cech
Wspaniałe oprogramowanie w trzech prostych krokach
W pierwszej kolejności skoncentruj się na funkcjonalności
Test
Szukamy problemów
Stosuj proste zasady projektowania obiektowego
Projekt po raz pierwszy, projekt po raz drugi
Jak łatwo można wprowadzić zmiany w Twojej aplikacji?
Poddawaj hermetyzacji to, co sie zmienia
Delegowanie
Nareszcie doskonałe oprogramowanie (jak na razie)
OOA&D ma na celu tworzenie wspaniałego oprogramowania, a nie dodanie Ci papierkowej roboty!
Kluczowe zagadnienia
2. Daj im to, czego chcą
Nadszedł czas na kolejny pokaz Twych programistycznych umiejętności
Test programu
Nieprawidłowe zstosowanie (coś w tym stylu)
Czym jest wymaganie
Tworzenie listy wymagań
Zaplanuj, co może się popsuć w systemie
Problemy w działaniu systemu są obsługiwane przez ścieżki alternatywne
(Ponowne) przedstawienie przypadków użycia
Jeden przypadek użycia, trzy części
Porównaj wymagania z przypadkami użycia
Twój system musi działać w praktyce
Poznajemy Szczęśliwą Ścieżkę
Przybornik projektanta
3. Kocham cię, jesteś doskonały… A teraz — zmień się
Jesteś bohaterem!
Jesteś patałachem!
Jedyny pewnik analizy i projektowania obiektowego
Ścieżka oryginalna? Ścieżka alternatywna? Kto to wie?
Przypadki użycia muszą być zrozumiałe i użyteczne przede wszystkim dla Ciebie
Od startu do mety: jeden scenariusz
Wyznanie Ścieżki Alternatywnej
Uzupełnienie listy wymagań
Powielanie kodu jest bardzo złym pomysłem
Ostateczny test drzwiczek
Napisz swoją własną zasadę projektową!
Przybornik projektanta
4. Zaczynamy używać naszych aplikacji w rzeczywistym świecie
Jeden pies, dwa psy, trzy psy, cztery…
Twoje oprogramowanie ma kontekst
Określ przyczynę problemu
Zaplanuj rozwiązanie
Opowieść o dwóch programistach
Delegowanie w kodzie Szymka — analiza szczegółowa
Potęga aplikacji, których elementy są ze sobą luźno powiązane
Zwracaj uwagę na rzeczowniki występujące w przypadku użycia
Od dobrej analizy do dobrych klas…
Diagramy klas bez tajemnic
Diagramy klas to nie wszystko
Kluczowe zagadnienia
5. (część 1.) Nic nie pozostaje wiecznie takie samo
Firma Gitary/Instrumenty Strunowe Ryśka rozwija się
Klasy abstrakcyjne
Diagramy klas bez tajemnic (ponownie)
Ściągawka z UML-a
Porady dotyczące problemów projektowych
Trzy kroki tworzenia wspaniałego oprogramowania (po raz kolejny)
5. (przerywnik) Obiektowa katastrofa
5. (część 2.) Zabierz swoje oprogramowanie na 30-minutowy trening
Wróćmy do aplikacji wyszukiwawczej Ryśka
Dokładniejsza analiza metody search()
Korzyści, jakie dała nam analiza
Dokładniejsza analiza klas instrumentów
Śmierć projektu (decyzja)
Zmieńmy złe decyzje projektowe na dobre
Zastosowanie „podwójnej hermetyzacji” w aplikacji Ryśka
Nigdy nie obawiaj się wprowadzania zmian
Elastyczna aplikacja Ryśka
Testowanie dobrze zaprojektowanej aplikacji Ryśka
Jak łatwo można wprowadzać zmiany w aplikacji Ryśka?
Wielki konkurs łatwości modyfikacji
Spójna klasa realizuje jedną operację naprawdę dobrze
Przegląd zmian wprowadzonych w oprogramowaniu dla Ryśka
Doskonałe oprogramowanie to zazwyczaj takie, które jest „wystarczająco dobre"
Przybornik projektanta
6. „Nazywam się Art Vandelay… jestem Architektem”
Rozwiązywanie dużych probleów
Wszystko zależy od sposobu spojrzenia na duży problem
Wymagania i przypadki użycia to dobry punkt wyjściowy...
Potrzebujemy znacznie więcej informacji
Określanie możliwości
Możliwość czy wymaganie
Przypadki użycia nie zawsze pomagają ujrzeć ogólny obraz tworzonego oprogramowania
Diagramy przypadków użycia
Mały aktor
Aktorzy to także ludzie (no dobrze… nie zawsze)
A zatem zabawmy się w analizę dziedziny!
Dziel i rządź
Nie zapominaj, kim tak naprawdę jest klient
Czym jest wzorzec projektowy?
Potęga OOA&D (i trochę zdrowego rozsądku)
Przybornik projektanta
7. Porządkowanie chaosu
Czy czujesz się nieco przytłoczony?
Potrzebujemy architektury
Zacznijmy od funkcjonalności
Co ma znaczenie dla architektury
Trzy „P” dotyczące architektury
Wszystko sprowadza się do problemu ryzyka
Scenariusze pomagają zredukować ryzyko
Koncentruj się na jednej możliwości w danej chwili
Architektura jest strukturą Twojego projektu
Podobieństwa po raz kolejny
Analiza podobieństw: ścieżka do elastycznego oprogramowania
Co to znaczy? Zapytaj klienta
Zmniejszanie ryzyka pomaga pisać wspaniałe oprogramowanie
Kluczowe zagadnienia
8. Oryginalność jest przereklamowana
Zasada projektowania — w skrócie
Zasada otwarte-zamknięte
OCP, krok po kroku
Zasada nie powtarzaj się
Zasada DRY dotyczy obsługi JEDNEGO wymagania w JEDNYM miejscu
Zasada jednej odpowiedzialności
Wykrywanie wielu odpowiedzialności
Przechodzenie od wielu do jednej odpowiedzialności
Zasada podstawienia Liskov
Studium błędnego sposobu korzystania z dziedziczenia
LSP ujawnia ukryte problemy związane ze strukturą dziedziczenia
Musi istnieć możliwość zastąpienia typu bazowego jego typem pochodnym
Naruszenia LSP sprawiają, że powstający kod staje się mylący
Deleguj funkcjonalność do innej klasy
Użyj kompozycji, by zebrać niezbędne zachowania z kilku innych klas
Agregacja — kompozycja bez nagłego zakończenia
Agregacja a kompozycja
Dziedziczenie jest jedynie jedną z możliwości
Kluczowe zagadnienia
Przybornik projektanta
9. Oprogramowanie jest wciąż przeznaczone dla klienta
Twój przybornik narzędziowy powoli się wypełnia
Wspaniałe oprogramowanie tworzy się iteracyjnie
Schodzenie w głąb: dwie proste opcje
Programowanie w oparciu o możliwości
Programowanie w oparciu o przypadki użycia
Dwa podejścia do tworzenia oprogramowania
Analiza możliwości
Pisanie scenariuszy testowych
Programowanie w oparciu o testy
Podobieństwa po raz wtóry
Kładziemy nacisk na podobieństwa
Hermetyzujemy wszystko
Dopasuj testy do projektu
Testy bez tajemnic…
Udowodnij klientowi, że wszystko idzie dobrze
Jak dotąd używaliśmy programowania w oparciu o kontrakt.
Tak naprawdę programowanie w oparciu o kontrakt dotyczy zaufania
Programowanie defensywne
Podziel swoją aplikację na mniejsze fragmenty funkcjonalności
Kluczowe zagadnienia
Przybornik projektanta
10. Scalając to wszystko w jedno
Tworzenie oprogramowania w stylu obiektowym
Trans-Obiektów
Mapa metra o Obiektowie
Lista możliwości
Przypadki użycia odpowiadają zastosowaniu, możliwości odpowiadają funkcjonalności
A teraz zacznij powtarzać te same czynności
Dokładniejsza analiza sposobu reprezentacji sieci metra
Używać klasy Line czy też nie używać… oto jest pytanie
Najważniejsze sprawy związane z klasą Subway
Ochrona własnych klas
Czas na przerwę
Wróćmy znowu do etapu określania wymagań…
Koncentruj się na kodzie, a potem na klientach
Powtarzanie sprawia, że problemy stają się łatwiejsze
Jak wygląda trasa?
Samemu sprawdź Przewodnik Komunikacyjny po Obiektowie
Ktoś chętny na trzeci cykl prac?
Podróż jeszcze nie dobiegła końca…
A. Dziesięć najważniejszych tematów (których nie poruszyliśmy)
Nr 1. JEST i MA
Nr 2. Sposoby zapisu przypadków użycia
Nr 3. Antywzorce
Nr 4. Karty CRC
Nr 5. Metryki
Nr 6. Diagramy sekwencji
Nr 7. Diagramy stanu
Nr 8. Testowanie jednostkowe
Nr 9. Standardy kodowania i czytelny kod
Nr 10. Refaktoryzacja
B. Stosowanie języka obiektowego
UML i diagramy klas
Dziedziczenie
Polimorfizm…
Hermetyzacja
Kluczowe zagadnienia
Skorowidz
Recommend Papers

Head First Object-Oriented Analysis and Design [Edycja polska]
 9788324660506, 9788324609659, 8324609652, 832466050X

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

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|7–Ra|G ¸R ‚|®ª-q-t| y‚l˜-ylR ª˜‚-yl-tRa| |‚–|a–-u|ª-yl-G - oRJy|A®R²ylR y-  ¬qR  –¥JyRa|G ¸R p|ylRA®yR ˜ -t| ˜lÖ ª¬J-ylR p˜lÔ¸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 p˜lÔ¸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- - p˜lÔ¸Rp ® ˜R–ll R-J l–˜ G ‚l˜-t -‚qlp-AoR ª -©lR Jq- \l–u 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|yp–R ylR uRAi-yl®uRu ˜R–ªqR }ª |–-® p|y RyR–Ru  yi¬J–- \l–u¬ ¥ –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- -J–R˜ 7–R  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®RylR‘G 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-J–R˜ i  ‚FžžªR7‡A˜‡ª‚l‡RJ¥ž4a‚|qqlARž‡ iÖ ylR ®-‚|®y- ˜lÖ ® p–¬ ¬A®y¬ul q¥7 ‚|AiqR7y¬ul ¥ª-a-ul y-  Ru-   Ro p˜lÔ¸pl‡

'ARY

Dave West q¥7l |p–R²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‚–|\R˜o|y-ql˜ ÖG p }–¬ ® ‚-˜oÔ l RyR–alÔ -yaqlp-͘plRa| ‚-˜ |–- ¥ªlRq7l- –|®u-ªl-É | y-oqR‚˜®¬Ai ‚–-p ¬p-Ai  ª|–®Ryl- |‚–|a–-u|ª-yl-‡ ˜ - yl| -©R ®-A®Ôt ‚–-A|ª-É ª \l–ulR ©-– -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Ö ª \l–ulR ©-– -A|7˜|y |y˜¥q lyaG ‚–®R® ªlRqR q-  7¬t ®- –¥Jyl|y¬ ª - l|y-q |\ ª-–R „\l–ulR |7RAylR ˜ -y|ªlÔARo A®Ö²É …‡ +-–}ªy| ª - l|y-q |\ ª-–RG o-p l  ®-ou|ª-t ªlRqR ˜ -y|ªl˜pG ª  ¬u  -p¸R 7¬t uRyRJ¸R–Ru ‚–|J¥p ¥ #G J| p }–Ra| ª‚–|ª-J®lt lJRÖ ª ¬A®Rp ‚–|AR˜}ª |–-® ®ªlyy|²Al „-alql ¬…‡ |¸y- J| ylRa| ‚l˜-É y- -J–R˜F JªR˜ 6l©-–o-A|7˜|y‡A|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-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˜  ‚–®R–Rpq-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¨ >aœT WœdQ \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¨ ]aœT WœdQ S Z\dOUYXK¨ QY ÒO >aYTO ÒcMSO dKVOÒc YN dXKTYWYÄMS KXKVSdc S Z\YTOU^YaKXSK YLSOU^YaOQY) q- p|a| oR˜   - p˜lÔ¸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à WSPANIAŒE 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\YLVOWœa 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\KWœa 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 SKD MAM WIEDZIE· OD CZEGO NALE‘Y ZACZ· -AM WRA‘ENIE ‘E ILEKRO· ZACZYNAM PRAC» NAD NOWYM PROJEKTEM KA‘DY MA INNE ZDANIE ODNOvNIE TEGO CO NALE‘Y ZROBI· W PIERWSZEJ KOLEJNOvCI #ZASAMI ZROBI» COv DOBRZE LECZ CZASAMI KOÂCZY SI» NA TYM ‘E MUSZ» PRZEROBI· CAˆ APLIKACJ» OD POCZTKU BO ZACZˆEM W ZˆYM 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 iR–uR ¬®-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 ‚-‚lR–p|ªRo –|7| ¬

œz

q¥A®|ªR ®-a-JylRyl-



3PIS TREuCI

1\YWKNdOXSO acWKQKº



.KT SW ^Y MdOQY MRM¦ +A˜DY 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 YQœVO aSO MdOQY ^KU XKZ\KaN° MRMO) A¸KÄXSO aœaMdK] 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 WœQ¸ 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¥



lR‚–-ªlJt|ªR ®-˜ |˜|ª-ylR „A|² ª  ¬u ˜ ¬q¥…

Uz

®¬u oR˜  ª¬u-a-ylR



"ª|–®RylR ql˜ ¬ ª¬u-a-Í



+-‚q-y¥oG A| u|¸R ˜lÖ ‚|‚˜¥É ª ˜¬˜ RulR



–|7qRu¬ ª J®l-t-yl¥ ˜¬˜ Ru¥ ˜Ô |7˜t¥alª-yR ‚–®R® ²AlR¸pl -q R–y- ¬ª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 B”Dz TEš ZNAJDUJ” SIÅ WEWN”TRZ NIEGO



3PIS TREuCI

AcWKQKXSK _VOQKT¦ dWSKXYW



5YMRKW MS° TO]^OÄ NY]UYXK¸cj + ^O\Kd s dWSOº ]S° 3’DZISZ ˜E DOWIEDZIAŒEu 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- R–Ru[

¡U

R˜ R² ‚- -t-AiRu[

¡z

RJ¬y¬ ‚Rªylp -y-ql®¬ l ‚–|oRp |ª-yl- |7lRp |ªRa|

`

ÛAlR¸p- |–¬aly-qy- ÛAlR¸p- -q R–y- ¬ª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 R–y- ¬ª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 WœQ¸ ZYaSONdSO¨$ i.YUYXK¸OW ^OQY 7YTO YZ\YQ\KWYaKXSO TO]^ QY^YaO NY dK]^Y]YaKXSK a \dOMdcaS]^cW ÄaSOMSO p

+IEDY JU‘ OKREvLIˆAM JAKICH KLAS I OPERACJI B»D» POTRZEBOWA· ODPOWIEDNIO ZAKTUALIZOWAˆAM DIAGRAM KLAS

RJRy ‚lR˜G Jª- ‚˜¬G  –®¬ ‚˜¬G A® R–¬V

œ°

"ª|oR |‚–|a–-u|ª-ylR u- p|y Rp˜ 

œ

p–R²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|7–Ro -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” ZŽY 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 ZYWœM ]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 ]ZœTXYĨ WYÒO ZYWœM 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|7–R

¤œ

+-˜ |˜|ª-ylR ‚|Jª}oyRo iR–uR ¬®-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|7–R‘

¤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 KZVSUKMTS p

?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 WŽAwCIWOwCI KTÎRE S” WSPÎLNE DLA WSZYSTKICH JEDNOSTEK ZOSTAŽY 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 KAšDEJ Z NOWYCH WŽAwCIWOwCI 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-Al˜p y- ‚|J|7lR͘ ª-

``

R–uR ¬®¥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]YLœa 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

^°°

"–-y˜k7lRp }ª

^°`

-‚- 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¥ –R‚–R®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 -‚¥ |p–R²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 -O˜ESZ 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 \YdWœa 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 \YdWœa 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\Mœa 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\YLVOWœa 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

ZAPEWNIAJ”CY MOšLIWOwÁ KORZYSTANIA Z URZ”DZEÌ SPRZÅTOWYCH KONTROLUJ”CYCH DZIAŽANIE 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 UšYCIU INNYCH KLAS

A]Zœ¸Z\KMYaXSU

/TWORZENIE DRZWICZEK :AMKNIÅCIE DRZWICZEK

$O WYKONANIA NIE S” UšYW 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 WŽAwNIE W TAKI SPO NIE POZWALA NA PRZEDSTAWIA CJI SZCZEGΎOWYCH INFORMA APLIKACJÅ O KLASACH TWORZ”CYCH

4O S” ZMIENNE SKŽADOWE KLASY +AšDA MA PEWN” NAZWÅ A PO DWUKROPKU OKREwLONY JEST JEJ TYP

4O S” METODY KLASY +AšDA 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^

R–uR ¬®-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 SKŽADOWE 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 MOšNA POWIEDZIEÁ RAMIE MOšNA NAWET DOWE 7 RAZIE POTRZEBY W DIAG IERAJ”CY ZMIENNE SKŽA POMIN”Á FRAGMENT ZAW OšE 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 KSI‘CE O ANALIZIE I PROJEKTOWANIU

AMY NA PAL”CE 7 TEJ CZÅwCI ODPOWIAD ORZY 5-)%i#),) AUT EGO ACZ a$L E PYTANI KSI”šCE TE WSZYSTKIE RZECZY W U OBIEKTOWYMp ANI TOW JEK PRO I O ANALIZIE

*AK KORZYSTA¿ Z TEJ KSI’˜KI

.VK UYQY TO]^ ^K U]S¦ÒUK) R²ql u|¸R˜® |J‚|ªlRJ®lRÉ  ªlR–J®Ô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¸KNœa KUKNOWSMUSMR)

 |  - p˜lÔ¸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É  ªlR–J®ÔA| y- p }–Rp|qªlRp ® ‚|yl¸˜®¬Ai ‚¬ -ÍF 

4O]dMdO a YQœVO 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)

 |  - p˜lÔ¸p- ylR oR˜  ‚–®R®y-A®|y- Jq- lR7lR‡

;.OTATKA OD DZIAŽU MARKETINGU TA KSI”šKA JEST DLA KAšDEGO KTO MA KARTÅ KREDYTOW”=



7PROWADZENIE

7PROWADZENIE

ASOWc MY ]YLSO WcÄVS]d -plu A¥JRu  | u|¸R 7¬É ‚|ª-¸y- p˜lÔ¸p- ‚–|a–-ul˜ ¬A®y-‘ | A|  R ª˜®¬˜ plR |7–-®pl‘ 4WÎJ MÎZG MYwLI šE WŽAwNIE 4/ JEST ISTOTN E

®¬ ª  -pl ˜‚|˜}7 u|¸y- ˜lÖ A®Ra|p|qªlRp y-¥A®¬É‘

ASOWc ^KUÒO MY ]YLSO WcÄVS >aœT WœdQ "ª}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 RyR–all 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®l˜lRo˜®¬Ai A®-˜-Ai oR˜  u-t| ‚–-ªJ|‚|J|7yRG -7¬² ˜ -t ˜lÖ ‚–®RpԘpÔ Jq-  ¬a–¬˜-‡ qR "ª}o u}®a ªAlÔ¸ |7˜R–ª¥oR‡ ' p|ÍA¥G ylaJ¬ ylA ylR ªl-J|u|‡

7SPANIALE 0OZOSTAˆO JESZCZE JEDYNIE  GˆUPICH NUDNYCH I DR»TWYCH STRON

R¥–|y¬ ‚t|yԇ u|AoR ˜®-qRoԇ J–Ry-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 ulRo˜A¥ 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®lR˜lÖÉ 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 ylR˜lR ®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˜   - p˜lÔ¸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 KSI’˜KI

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 WœdQS 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\YLVOWœa acMS¦QKXSOW aXSY]Uœa 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 $OSKONAˆE dW_]dKXSO NY NdSK¸Kº U^œ\O acWKQKT¦ dKKXQKÒYaKXSK YL_ Zœ¸U_V WœdQYacMR OPROGRAMOWANIE ZA KA‘DYM 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 7œdQ 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 >aœT WœdQ Z\dc]aYS TO ]YLSO dXKMdXSO ]dcLMSOT

AcdaœV 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 aSOVUS p 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 WŽAwCIWO IU OŽAN 'UITAR PRZEKAZANEGO W JEJ WYW KTÎW TEGO TYPU OBIE H STKIC WSZY MI wCIA CIWO WŽAw 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 BRAKUJ’CEJ GITARY

AU\œ^MO TONXKU YUKdK¸Y ]S° ÒO O]^O\TK`K

0RZYKRO MI 2YvKU ALE WYGLDA 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Å SPEŽNIAJ”C” JEJ OCZEKIWANIA



2OZDZIAŒ 

$OBRZE ZAPROJEKTOWANE APLIKACJE S’ SUPER

!LE PRZECIE‘ JA WIEM ‘E vWIETN GITAR» 3TRATOCAS MAM TOR FIR &ENDER *EST WˆAvNIE TUT MY AJ

inventory.addGuitar(”V95693”, 1499.95, ”Fender”, ”Stratocastor”, ”elektryczna”, ”olcha”, ”olcha”);

/TO FRAGMENT KODU INICJALIZUJ”CEGO ZAWARTOwÁ MAGAZYNU 2YwKA 7YGL”DA NA TO šE 2YSIEK FAKTYCZNIE MA GITARÅ KTÎRA SPEŽNIA OCZEKIWANIA %WY

DKY]^\d Y¸œaOU

7YDAJE SIÅ šE SPECYFIKACJA GITARY DOKŽADNIE ODPOWIADA OCZEKIWANIOM %WYb :ATEM CO SIÅ STAŽO

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 >aœT 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\YLVOWœa



2OZDZIAŒ 

/ RANY JEvLI MÄJ KOD NAPRAWD» MÄGˆBY MIE· TE WSZYSTKIE CECHY TO PISANE PRZEZE MNIE APLIKACJE BYˆYBY WSPANIAˆE 0OTRAFI» NAWET ZAPISA· TE WSZYSTKIE WYMAGANIA W KILKU PROSTYCH PUNKTACH KTÄRE MO‘NA 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 MOšE #I SIÅ WYDAWAÁ šE TO WCALE NIE JEST TAKIE ŽATWE *EDNAK POKAšEMY š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 MOšESZ ODSZUKAÁ W NIMBÅDZIE JUš DZIAŽAÁ POWTARZAJ”CE SIÅ FRAGM I USUN”Á UPEWNIÁ SIÅ šE ZASTOS ENTY KODU ORAZ PROJEKTOWANIA OBIEKTOW OWAŽEw DOBRE TECHNIKI EGO

#ZY UZYSKAŽEw 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 UšYTKOWANIA

 =^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 MOšEMZAPISU ODWOŽYWAÁ PRZY UšYCIU 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 JESŽYCH ZALET TYPÎW OGRANICZENIA POTE T MOšLIWOwÁ PRZEKAZYWANYCH NCJALNYCH WARTOwCI ZATEM JUš NIGDY W WYWOŽANIACH 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 ^cZœa 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;

7YGL”DA NA TO šE NIC SIÅ NIE ZMIENIŽO JEDNAK DZIÅKI ZASTOSOWANIU TYPÎW WYLICZENIOWYCH NIE MUSIMY JUš MARTWIÁ SIÅ šE METODA ZWRÎCI NIEWŽAwCIWE WYNIKI ZE WZGLÅDU NA RΚNICE W WIELKOwCI LITER UšYTYCH W OBU ŽAÌCUCHACH }

*EDYN” WŽAwCIWOwCI” 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^¦ ^cZœa 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 ^cZœa 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\YLVOWœa DKT\dcT NY ZVSUœa 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Á WYGL”DA NA TO šE W METODZIE SEARCH NIC SIÅ NIE ZMIENIŽO TO JEDNAK TERAZ UšYWAMY WARTOwCI TYPÎW WYLICZENIOWYCH DZIÅKI CZEMU MAMY PEWNOwÁ šE NIE POJAWI” SIÅ šADNE PROBLEMY ZWI”ZANE Z BŽÅDAMI TYPOGRAFICZNYMI LUB ZASTOSOWANIEM LITER O RΚNEJ WIELKOwCI

AYYN ^Y=^\SXQ$ =^\SXQ

/TO NASZE TYPY WYLICZENIOWE

+LASA 'UITAR UšYWA TYCH TYPÎW WYLICZENIOWYCH DO REPREZENTACJI DANYCH DZIÅKI CZEMU MOšNA WYELIMINOWAÁ BŽÅDY ZWI”ZANE Z NIEWŽAwCIWYM 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–¬ R–l-  | 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]ZœVXOQY 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\KWœa 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]^KXœa ]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° WœaS¦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\KWœa 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 ZYWœM 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 WYSZUKUJ”CEGO 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);

5šYWAMY W WYLICZENIOW NIM TYPÎW NIE BÅDZIE YCH 4YM RAZEM PROBLEMÎW WIÅC šADNYCH NIEWŽAwCIW 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 SPEŽNIAJ” WYMAGANIA OKREwLONE PRZEZ KLIENTA

}

7 TEJ WERSJI PROGRAMU TESTOWEGO MUSIMY PRZEJRZEÁ CAŽ” LISTÅ INSTRUMENTÎW ZWRÎCON” PRZEZ NARZÅDZIE WYSZUKUJ”CE

class FindGuitar { main() }

0SXN1_S^K\>O]^O\TK`K

/ TAK 4ERAZ PROGRAM DZIAˆA DOKˆADNIE TAK JAK TEGO CHCIAˆEM

7SZYSTKO ZADZIAŽAŽO TAK %WA MOGŽA 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\YUœa "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 DZIAŽA JUš TAK JAK CHCIAŽ 2YSIEK TEN KROK MOšEMY UZNAÁ ZA ZAKOÌCZONY

 ?ZOaXST ]S° ÒO YZ\YQ\KWYaKXSO \YLS ^Y MdOQY YMdOU_TO UVSOX^ :ATEM W KOÂCU NADSZEDˆ CZAS GDY MO‘EMY UPEWNI· SI» ‘E W APLIKACJI NIE MA POWTARZAJCYCH SI» FRAGMENTÄW KODU ORAZ ‘E WSZYSTKIE U‘YWANE W NIEJ OBIEKTY ZOSTAˆY 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 DZIAŽAJ”CY 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\YLVOWœa –®¬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 MO‘E JAKv 2YvKU

+LIENT PODAJE ZBIÎR KRYTERIÎW JAKIE MUSI SPEŽNIAÁ 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 KAšDEJ GITARY 0ODAWANE S” JEDYNIE TE WYMAGANIA NA PODSTAWIE KTÎRYCH NALEšY 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 WYWOŽANIE POWODU NIA WA ROZPOCZÅCIE PRZESZUKI MAGAZYNU 2YwKA +AšDA GITARA ZNAJDUJ”CA SIÅ W MAGAZYNIE 2YwKA JEST PORÎWNYWANA ZE SPECYFIKACJ” UšYTKOWNIKA 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(); UšYWAMY 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 SPEŽNIAJ”CYCH 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(); 4AKšE TUTAJ System.out.println(“ Mamy w magazynie gitarę “ + UšYWAMY 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 UWIELBIAˆEM GRA· NA  STRUNOWYCH GITARACH *AK TRUDNE BYˆOBY 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 WYWOŽANIU 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 WŽAwCIWOwCI DODANE DO KLASY 'UITAR3PEC

$OBRZE ZAPROJEKTOWANE APLIKACJE S’ SUPER

#ZYLI PROBLEM POLEGA WˆAvNIE NA TYM $ODAWANIE NOWYCH WˆAvCIWOvCI DO KLASY 'UITAR3PEC NIE POWINNO ZMUSZA· NAS DO WPROWADZANIA MODYFIKACJI W KLASACH 'UITAR ORAZ )NVENTORY #ZY TAK‘E TEN PROBLEM MO‘EMY ROZWIZA· WYKORZYSTUJC 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\YLVOWœa S XSOZ\dO]ZKXcMR XYMc dWK\XYaKXcMR XK ÒW_NXO ZYZ\KaSKXSO L¸°Nœa



+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| ‚–®¬Al˜p¥ ‚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| \l–u¬ ˜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-˜- –R‚–R®Ry ¥oÔAJ–®ªlA®pl Jq- ‚˜-‡ -®ªlou¬ oÔ DogDoor‡ - ‚|A®Ô p¥ J|J-u¬ J| ylRo plqp‚–|˜ ¬Ai uR |JF :AKŽADAMY šE KLA SIÅ KOMUNIKOWAÁ SA $OG$OOR BÅDZIE ELEKTRONICZNYMI Z URZ”DZENIAMI 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 BIEš”CY 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; } } #AŽY POWYšSZY KODb

bZOSTAJE UMIESZCZONY W PLIKU $OG$OORJAVAb

class DogDoor { open () }

.YQ.YY\TK`K

I BÅDZIE KONTROLOWAÁ URZ”DZENIA ELEKTRONICZNE UMIESZCZONE W DRZWICZKACH DLA PSA 4ADKA I *ANKI

4ERAZ WSZYSTKO ZALEšY OD #IEBIE s DOLA PSA !ZORA LOS JEGO WŽAwCICIELI 4ADKA I *ANKI ORAZ SUKCES 4WOJEGO SZEFA $ARKA

JESTEu TUTAJ 



0ISANIE KODU OBSŒUGUJ’CEGO 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 WYMAGAJ”CAJEST 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 NAPISAŽEw BY KONTROLOWAÁ DZIAŽANIE DRZWICZEK DLA PSA



2OZDZIAŒ 

D

e

isO

false boolean

i Open isOpen

+AšDA KLASA POTRZEBUJE JAKICHw DZIAŽAÌ LOGICZNYCH NIEPRAWDAš

4A WŽAwCIWOwÁ OKREwLA CZY AKTUALNIE DRZWICZKI S” OTWORZONE CZY ZAMKNIÅTE

D DogDoor

DogDoor

door

door

4YCH ELEMENTÎW MOšESZ UšYÁ 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 ZAŽATWIENIU WSZYSTKICH SWOICH POTRZEB A 4ADEK I *ANKA BÅD” USZCZÅwLIWIENI



º

! TO JEST NOWA LISTA OPISUJ”CA SZCZEGΎOWO JAK NAPRAWDÅ MAJ” DZI AŽAÁ DRZWICZKI DLA PSA

2OZDZIAŒ 

-OšEMY UšYÁ 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\YLVOWœa .VK^OQY ^OÒ W_]S]d Z\dOaSNdSO¨ MY WYÒO ZœTĨ 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 WœT)

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 YQœVO 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 MOVœa 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\YLVOWœa 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 MO˜E 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 USŽYSZ” 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 GŽODNY #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 ZEWN”TRZ *EwLI !ZOR UTKNIE *ANKA BÅD” LUB K DE TO CZY 4A O SZCZEKANIE MOGLI USŽYSZEÁ 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 WRA‘LIWA I BA RDZ APLIKACJA 0ONI‘EJ BEZP IEJ SOLIDNA B»DZIE TWORZONA OvREDNIO NA DIAGRAMIE ZAPISZ WSZYSTKIE POTENCJALNE PROBLEMY I NIEOCZEKIW ANE SYTUACJE JAKIE PRZYCH ODZ #I DO GˆOWY

#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 WEWN”TRZ

+dY\ dK¸K^aSK ]aYTO ZY^\dOLc

! CO JEwLI DRZWICZKI SIÅ AUTOMATYCZNIE ZAMKNŎY ZANIM JESZCZE !ZOR ZD”šYŽ ZAŽATWIÁ SWOJE POTRZEBY

!

+dY\ aMRYNdS NY Ä\YNUK

JESTEu TUTAJ 



/CZEKUJ ˜E COu MO˜E 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Á MOšE PÎzNIEJ BÅDZIEMY MUSIELI J” ZAKTUALIZOWAÁ JEDNAK NA RAZIE LISTA JEST JESZCZE W PORZ”DKU

.\daSMdUS NVK Z]K NVK >KNU K S 4KXUS aO\]TK  4KU NdSK¸KT¦ N\daSMdUS

-OšEMY UšYÁ TAKIEJ aLISTY ZAGNIEšDšONEJp BY PRZEDSTAWIÁ PEWNE ZDARZENIA DODATKOWE KTÎRE MOG” WYST”PIÁ W RAMACH KROKU 

*EwLI !ZOR ZOSTANIE NA ZEWN”TRZ TO WPUSZCZENIE GO DO DOMU WYMAGA KILKU DODATKOWYCH KROKÎW +ROKI TE NAZYWAMY wCIEšK” 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 MOšE JUš WRÎCIÁ DO DOMU POMIMO TEGO šE 4ADEK I *ANKA W OGÎLE JESZCZE NIE PRZEWIDZIELI MOšLIWOwCI WYST”PI ENIA TAKIEGO PROBLEMU



2OZDZIAŒ 

7SZYSTKIE TE NOWE KROKI SŽUš” DO ROZWI”ZANIA PROBLEMU KTÎRY POJAWI SIÅ KIEDY DRZWICZKI ZAMKN” SIÅ AUTOMATYCZNIE ZANIM !ZOR ZD”šY WRÎCIÁ DO DOMU

'ROMADZENIE WYMAGAÊ

(EJ NA STUDIACH MIAˆEM ZAJ»CIA NA TEN TEMATb #ZY PO PROSTU NIE PISZEMY PRZYPADKU U‘YCIA

9a]dOW 9N ]KWOQY ZYMd¦^U_ ZS]KVSÄWc Z\dcZKNUS _ÒcMSK lRJ¬ ®-‚l˜¬ª-tR² p–|pl p|ylRA®yR J| ª¬‚¥˜®A®Ryl®|–- y- ˜‚-AR–G ª –®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- ˜‚-AR–G 7¬ ®-t- ªlt ˜ª|oR ‚| –®R7¬G l ‚}´ylRo˜®R ª‚¥˜®A®RylR a| ® ‚|ª–| Ru J| J|u¥‡

3PÎJRZ 4O JEST PRZYPADEK UšYCIA

.\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š NAPISAŽEw PRZYPADEK UšYCIA DLA DRZWICZEK DLA PSA ZAMÎWIONYCH PRZEZ 4ADKA I *ANKÅ

JESTEu TUTAJ 



#O TO JEST PRZYPADEK U˜YCIA

:YXYaXO Z\dON]^KaSOXSO Z\dcZKNUœa _Ò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 UšYCIA TO ODP OD aCOp PYTANIE ZACZYNAJ”CE 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 UšYCIA 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 BYŽBY TO ZUPEŽNIE INNY CEL A ZATEM DO JEGO REALIZACJI POTRZEBOWAŽBYw ZUPEŽNIE INNEGO PRZYPADKU UšYCIA

5šYTKOWNIK LUB UšYTKOWNICY ZNAJDUJ” SIÅ NA ZEWN”TRZ SYSTEMU A NIE S” JEGO CZÅwCI” !ZOR KORZYSTA Z SYSTEMU I TAKšE ZNAJDUJE SIÅ POZA NIM *ANKA WYZNACZYŽA KONKRETNY CEL JAKI SYSTEM MA SPEŽNIAÁ JEDNAK TAKšE 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 UšYC ZREALIZOWANIE CELÎW WYZNACZONYCH IA JEST PRZEZ KLIENTA JAKI POWINIEN BYÁ EFEKT WYKONANIA TYCH WSZYSTKICH KROKÎW TWORZ”CY CH PRZYPADEK UšYCIA #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 B”Dz TEš ZNAJDUJ” SIÅ WEWN”TRZ NIEGO

'ROMADZENIE WYMAGAÊ

#AŽY PRZYPADEK UšYCIA OPISUJE CO ROBI” DRZWICZKI DLA PSA KIEDY !ZOR MUSI WYJwÁ NA SPACER

0RZYPADEK UšYCIA KOÌCZY SIÅ KIEDY CEL WYZNACZONY PRZEZ KLIENTA ZOSTANIE ZREALIZOWANY s CZYLI W NASZYM PRZYKŽADZIE KIEDY !ZOR ZNAJDZIE SIÅ Z POWROTEM W DOMU PO ZAŽATWIENIU 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 wCIEšKA ALTERNATYWNA JEDNAK TAKšE I ONA SŽUšY DO ZREALIZOWANIA TEGO SAMEGO CELU CO wCIEšKA GŽÎWNA A ZATEM NALEšY ONA DO TEGO SAMEGO PRZYPADKU UšYCIA

+”CIK NAUKOWY PRZYPADEK UšYCIA s TO TECHNIKA POZWALAJ”CA NA GROMADZENIE POTENCJALNYCH WYMAGAÌ PODCZAS TWORZENIA NOWEGO OPROGRAMOWANIA LUB WPROWADZANIA ZMIAN W OPROGRAMOWANIU ISTNIEJ”CYM +AšDY PRZYPADEK UšYCIA SKŽADA SIÅ Z JEDNEGO LUB KILKU SCENARIUSZY SUJ”CYCH PRZEBIEG INTERAKCJI SYSTEMU Z UšYTKOWNIKIEM KOÌCOWYM B Z INNYM SYSTEMEM DZIÅKI KTÎRYM MOšLIWE BÅDZIE ZREALIZOWANIE KONKRETNEGO CELU JESTEu TUTAJ 



*EDEN PRZYPADEK U˜YCIA 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 ¥¸¬Al˜‚Rtylt ˜ª|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 UšYCIA MUSI POMÎC 4ADKOWI I *ANCE W WYPUSZCZENI U !ZORA NA SPACER

:YMd¦^OU S 5YXSOM -¸J¬ ‚–®¬‚-JRp ¥¸¬Al- u¥˜l ulRÉ ‚–RA¬®¬oylR

 |p–R²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 INICJUJ”CYM JEST !ZOR 4O WŽAwNIE ON ROZPOCZYNA CAŽY 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 DUšE E WIST OCZY MA E KTÎR IA UšYC ZNACZENIE DLA 4ADKA I *ANKI

4EN MAGNESIK UMIEwÁ W TYM PUNKCIE PRZYPADKU UšYCIA KTÎRY OKREwLA WARUNEK SYGNALIZUJ”CY ZAKOÌCZENIE PROCESU

0ODPOWIEDz 5MIESZCZ JEDNEGO Z TYCH MAGNE ENIE SIK NAPRAWDÅ POWINNO BYÁ ÎW ŽATWEb JEwLI UWAšNIE PRZYJRZYSZ SIÅ ZAMIES ZCZONYM NA NICH OBRAZKOM

DEK #O ROZPOCZYNA PRZYPA T TO UšYCIA :AZWYCZAJ JES Z”CE JAKIEw ZDARZENIE ZACHOD POZA SYSTEMEM

+TO ROZPOCZYNA CAŽY PRZYPADEK UšYCIA

JESTEu TUTAJ  

%LEMENTY PRZYPADKU U˜YCIA

7KQXO]SUS Z\dcZKNU_ _ÒcMSK s KNUK S 4KXUS aO\]TK  4KU NdSK¸KT¦ N\daSMdUS 4O JEST POCZ”TEK PRZYPADKU UšYCIA .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 Z”CY UšYCIAb !ZOR JESDKU Z POWROTEM W DO T A DRZWICZKI DLA MU PSA S” ZAMKNIÅTE



7 TYM PRZYPADKU UšYCIA ZEWNÅTRZNYM CZYNNIKIEM INICJUJ”CYM JEST !ZOR

2OZDZIAŒ 

ŽY PRZYPADEK :NACZENIE MA CA K I *ANKA DE 4A Yš GD UšYCIA LEšEÁ 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\YUœa TKUSO ]c]^OW W_]S acUYXK¨ Lc NdSK¸K¸ ZYZ\KaXSO)

9$ >KU

a aS°U]dYÄMS Z\dcZKNUœa :KWS°^KT TONXKU ÒO TONX¦ d ZYN]^KaYacMR MOMR Z\dcZKNUœa _Ò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 WœT ]c]^OW L°NdSO WSO¨ ZY TONXcW Z\dcZKNU_ _ÒcMSK NVK UKÒNOQY d \OKVSdYaKXcMR Z\dOd XSOQY MOVœa Mdc ^KU)

9$

.YU¸KNXSO 4OÄVS >aœT ]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\dcZKNUœa

:$

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\WSXœa 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 WœQ¸ 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\dcZKNUœa _ÒcMSK ^Y ]ZY]œL aSd_KVXOQY Z\dON]^KaSOXSK Z\dcZKNUœa _Ò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\dcZKNUœa _Ò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\dcZKNUœa _Ò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\YUœa ^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 YQœVO QY ^aY\dc¨) .VKMdOQY WKW ^\KMS¨ XK XSOQY ]aœT 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 ZYWœM 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 OPISAŒEu WSZYSTKIE MO˜LIWOuCI 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Ì SPORZ”DZONA NA PODSTAWIE ROZMOWY Z 4ADKIEM I *ANK”b

bA TU ZAPISALIwMY SPO POWINNY DZIAŽAÁ 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]dMdOQœVXcW 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 UšYCIA MOšES 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 KAšDYM 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 UMYSŒY 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]dMdOQœVXcW 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 CHODZ”CYCH ZM DO PODEJMOWANIA USZA NAS JAKICHKOLWIEK DZIAŽAÌ

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Á MOšE ZAPISAŽEw TU EZ 4ADKA LUB *ANKÅ PRZ CIE PRZYCISKU NA PILO SIMY OBSŽUGIWAÁb ALE NIE JEST CZYMw CO MU IA  JEST POPRAWN” GAN TAKšE 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 BYŽBY Y NIE MIAŽY 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 wCIEšKI GŽÎWNEJ PODANIE WYMAGAÌ DLA wCIEšKI 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 ZWI”ZANE 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 MO‘E ZOSTA· NA DWORZE I ZADBALIvCIE O ROZWIZANIE 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 DZIAŒA

>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 wCIEšKI ALTERNATYWNEJ POWRACAMY DO wCIEšKI 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 uCIE˜KI 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 WŽAwNIE W TYM ___________________________________________________________ NA MIEJSCU ROZPOCZY SIÅ wCIEšKA 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); ZOSTAŽO 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 wCIEšKA ALTERNATYWNA PONOWNIE Ž”CZY SIÅ ZE wCIEšK” 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 MOšESZ WYwWIETLAÁ

”Azor drapie drzwi.”



2OZDZIAŒ 

remote remote remote mo re te

4O S” METODY POZWALAJ”CE NA KORZYSTANIE Z PILOTA

wait waitFor slee

4O S” METODY POZWALAJ”CE NA WYKONYWANIE OPERACJI NA W”TKACH *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 ªR–˜ol ‚qlp¥ DogDoorSimulator. javaG - y-˜ Ö‚ylR a| ˜p|u‚lq¥o‡ "R–-® u|¸R˜® o¥¸ ‚–®R R˜ |ª-É J®l-t-yl-q R–y- ¬ªyRo ²AlR¸pl y-˜®Ra| ‚–®¬‚-Jp¥ ¥¸¬Al-‡

Tik! Tak! $RZWICZKI OTWIERAJ” SIÅ I !ZOR WYCHODZI ZAŽATWIÁ SWOJE POTRZEBY

!LE !ZOR ZACZYNA GONIÁ OWADY I DRZWICZKI ZAMYKAJ” SIÅ AUTOMATYCZNIE KIEDY JESZCZE JEST NA ZEWN”TRZ !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 DRZWICZIEMOšLIWIAJ”C 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 WœQ¸ 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

5šYJ TYCH MAGNESIKÎW DO OZNACZANIA WARUNKÎW ZAKOÌCZENIA PRZYPADKU UšYCIA 7 JAKI SPOSÎB OKREwLISZ KIEDY 4WÎJ PRZYPADEK UšYCIA ZOSTAŽ ZAKOÌCZONY

7 TYM PRZYPADKU UšYLIwMY !ZORA DO OZNACZENIA ZEWNÅTRZNEGO CZYNNIKA INICJUJ”CEGO PRZYPADEK UšYCIA CZYLI ZDARZENIA OD KTÎREGO CAŽY PRZYPADEK UšYCIA SIÅ ROZPOCZYNA

JESTEu TUTAJ  

-AGNESIKI PRZYPADKÌW U˜YCIA q 2OZWI’ZANIA

7KQXO]SUS Z\dcZKNUœa _ÒcMSK s KNUK S 4KXUS aO\]TK  7 RZECZYWISTOwCI W NOWYM PRZYPADKU UšYCIA CHODZI NAM O TO BY POKAZAÁ šE MOšE BYÁ WYKONANY KROK  LUB KROK b

bA NASTÅPNIE KROK  LUB KROK 

4UTAJ MOšE 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°Uœa i]¸c]dcp ]dMdOUKXSO +dY\K  >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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°Uœa i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO  >KNOU V_L 4KXUK XKMS]UKT¦ Z\dcMS]U XK ZSVYMSO  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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 INFORMUJ”CY šE WSZYSTKIE KROKI UMIESZCZONE W LEWEJ KOLUMNIE NALEš” DO wCIEšKI GŽÎWNEJ

*EwLI ISTNIEJE TYLKO JEDEN KROK TO PODCZAS REALIZACJI SEKWENCJI CZYNNOwCI OPISANYCH PRZEZ PRZYPADEK UšYCIA KROK TEN ZAWSZE ZOSTANIE WYKONANY +ROKI PODRZÅDNE S” OPCJONALNEb -OšESZ ICH UšYÁ CHOÁ NIE JEST TO WCALE WYMAGANE 0OMIMO TO UMIEwCILIwMY JE W LEWEJ KOLUMNIE GDYš NIE STANOWI” ONE ZAMIENNIKÎW DLA INNYCH KROKÎW wCIEšKI GŽÎWNEJ .IEZALEšNIE OD TEGO W JAKI SPOSÎB ZOSTANIE WYKONANY PRZYPADEK UšYCIA ZAWSZE JEGO REALIZACJA ZAKOÌCZY SIÅ NA KROKU  NALEš”CYM DO wCIEšKI GŽÎWNEJ



2OZDZIAŒ 

7SZYSTKIE KROKI KTÎRE MOG” ZOSTAÁ WYKONANE ZAMIAST JAKICHw KROKÎW wCIEšKI 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°Uœa i]¸c]dcp ]dMdOUKXSO +dY\K  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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  MOšEMY XK ZSVYMSO IAŽY 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°Uœa i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO  =c]^OW \YdZYdXKaKXSK  >KNOU V_L 4KXUK XKMS]UKT¦ NÐaS°Uœa 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” ZAST”PIÁ ZACJ " .\daS K_^YWK^cMdXSO ]S° dKWcUKT¦ OPISYWANEGO PRZEZ PRZYPADEK UšYC I PROCESU WYKONAÁ TYLKO JEDEN Z WARIANTÎW IA MOšNA Z LEWEJ ,5" KROK ZAPISANY Z PRAW KROK ZAPISANY EJ STRONY

*EvLI NAPRAWD» MO‘EMY TWORZY· PRZYPADKI U‘YCIA W DOWOLNY SPOSÄB TO CZY MO‘EMY ZMODYFIKOWA· JE W TAKI SPOSÄB BY SYSTEM ROZPOZNAWANIA SZCZEKANIA STAˆ SI» ELEMENTEM GˆÄWNEJ vCIE‘KI "O PRZECIE‘ CHCEMY BY W WI»KSZOvCI PRZYPADKÄW SYSTEM DZIAˆAˆ WˆAvNIE W TAKI SPOSÄB NIEPRAWDA‘

7YMAGANIA ULEGAJ’ ZMIANOM

.Y]UYXK¸c ZYWc]¸ ÛAlR¸p- at}ªy- –R‚–R®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 ZWI”ZANE Z WYKORZYSTANIEM SYSTEMU ROZPOZNAWANIA DzWIÅKU ZOSTAŽY USUNIÅTE ZE wCIEšKI ALTERNATYWNEJ I DOŽ”CZONE DO wCIEšKI 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°Uœa  >KNOU V_L 4KXUK XKMS]UKT¦ i]¸c]dcp ]dMdOUKXSO +dY\K Z\dcMS]U XK ZSVYMSO  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa ac]c¸K Ò¦NKXSO Y^aY\dOXSK N\daSMdOU  .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° /BECNIE 4ADEK I *ANKA BÅD” UšYW PILOTA RACZEJ SPORADYCZNIE DLATE ALI GO  +dY\ acMRYNdS XK dOaX¦^\d UMIESZCZENIE WSZYSTKICH KROKÎW ZWI”ZANYCH Z PILOTEM W wCIEšKAC H  +dY\ dK¸K^aSK ]aYTO ZY^\dOLc ALTERNATYWNYCH BÅDZIE PRAWIDŽOW YM ROZWI”ZANIEM  .\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°Uœa i]¸c]dcp ]dMdOUKXSO ]dMdOUKXSO +dY\K dXYa_ +dY\K ZYXYaXSO  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa  >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 R–y- ¬ª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 wCIEšKÅ 4ADKOWI I *ANCE ZWÎLMY DRZWICZKI PRZY UšOTWORZYÁ YCIU PILOTA

.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK  4KU NdSK¸KT¦ N\daSMdUS 7SZYSTKIE MOšLIWE wCIEšKI REALIZACJI TEGO PRZYPADKU UšYCIA ROZPOCZYNAJ” SIÅ OD KROKU 

0ORUSZANIE SIÅ ZGODNIE Z KOLEJNOwCI” WYZNACZAN” PRZEZ STRZAŽKI POZWALA NA PRZEJwCIE DANEGO PRZYPADKU UšYCIA KONKRETN” wCIEšK” 4AKA wCIEšKA JEST NAZYWANA SCENARIUSZEM 7 JEDNYM PRZYPADKU UšYCIA MOšNA 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°Uœa  >KNOU V_L 4KXUK ]¸c]d¦ i]¸c]dcp ]dMdOUKXSO +dY\K ÒO +dY\ ]dMdOUK  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa  >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 EšKÅ 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 ZEWN”TRZ 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°Uœa i]¸c]dcp ]dMdOUKXSO ]dMdOUKXSO +dY\K dXYa_ +dY\K ZYXYaXSO  =c]^OW \YdZYdXKaKXSK  >KNOU V_L 4KXUK XKMS]UKT¦ NÐaS°Uœa ac]c¸K Ò¦NKXSO Z\dcMS]U XK ZSVYMSO Y^aY\dOXSK N\daSMdOU wCIEšKÅ  .\daSMdUS NVK Z]K Y^aSO\KT¦ ]S° dXYa_ 4AKšE 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 UšYCIA 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°Uœa 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 dKWœaSYXcMR 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\YUœa 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\dcZKNUœa _ÒcMSK ZY]SKNK USVUK \œÒXcMR ]MOXK\S_]dc TONXKU a]dc]^USO YXO \OKVSd_T¦ ^OX ]KW MOV _Òc^UYaXSUK

JESTEu TUTAJ 



gCIE˜KI ALTERNATYWNE S’ OPCJONALNE

Przypadki użycia bez tajemnic 7 TYM TYGODNIU

7YZNANIE gCIE˜KI !LTERNATYWNEJ (EAD&IRST 'l -u¬G ÛAlR¸p| q R–y- ¬ªy-‡ t¬˜®Rql²u¬G ¸R |˜ - yl| ylR oR˜ R² ®7¬  ˜®A®Ö²qlª-‡ |ªlRJ® y-uG A|  -plRa| ˜lÖ J®lRoR gCIE˜KA !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-[ gCIE˜KA !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 gCIE˜KA !LTERNATYWNA 't-²ylR plqp- Jyl  Ru¥ 7¬t-u \–-auRy Ru ‚–®¬‚-Jp¥ ¥¸¬Al- |‚l˜¥oÔARa| p¥‚|ª-ylR ‚t¬   ª y|ª¬u ly R–yR |ª¬u ˜pqR‚lR u¥®¬A®y¬u W ¥®¬p|q|al-‡ ¬t-u  ¬u  -p 7-–J®| ‚|–¥˜®|y-V  |p-®-t| ˜lÖG ¸R |7˜t¥a¥oÖ ˜¬ ¥-AoRG ª p }–¬Ai p-– - p–RJ¬ |ª- pqlRy - ®|˜ -t- |J–®¥A|y-‡ (EAD&IRST uV -qR  | Ai¬7- y-‚–-ªJÖ ª-¸yR ®-J-ylR[ +- Ru ª A®¬u ‚–|7qRu gCIE˜KA !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-– ¬ p–RJ¬ |ª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-– - p–RJ¬ |ª- ylR ®|˜ -t- |J–®¥A|y-G  | ª |a}qR ylR 7¬t-² ª¬p|y¬ª-y-‡ gCIE˜KA !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- \l–u¬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‡ gCIE˜KA !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|u‚qR y¬ 7R® AlR7lR‡ gCIE˜KA !LTERNATYWNA |  -pV –|pl ¡‡ l `‡ ªAlÔ¸ ul  | ‚|ª -–®-oԇ A®¬ªl²AlRG |yR ˜Ô A®Ö²AlÔ ²AlR¸pl -q R–y- ¬ªyRo ª¬p|y¬ª-yRo ª RJ¬G aJ¬ pqlRyAl u-oÔ o¥¸ ®-t|¸|yR p|y | ª y-˜®¬u ˜pqR‚lRG 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]YLœa WYÒXK Z\dOTĨ Z\dcZKNOU _ÒcMSK YZS]_T¦Mc NdSK¸KXSO N\daSMdOU dKWœaSYXcMR 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 YQœVO ZYWSX¦¨

.\daSMdUS NVK Z]K NVK >KNUK S 4KXUS aO\]TK 

!BY POMÎC #I W ROZWI”ZANIU TEGO ZADANIA ZAPISALIwMY WSZYSTKIE KROKI JAKIE S” WYKONYWANE W SCENARIUSZU PRZEDSTAWIONYM NA POWYšSZYM 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°Uœa ÒO +dY\ ]dMdOUK i]¸c]dcp ]dMdOUKXSO +dY\K  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa  >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°Uœa ]dMdOUKXSO +dY\K dXYa_ i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO  >KNOU V_L 4KXUK XKMS]UKT¦  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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Á MOšE 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 U˜YCIA WIELE SCENARIUSZY

DKY]^\d Y¸œaOU

KNUK S 4KXUS)

8K SVO ]ZY]YLœa WYÒXK Z\dOTĨ Z\dcZKNOU _ÒcMSK YZS]_T¦Mc NdSK¸KXSO N\daSMdOU dKWœaSYXcMR 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 YQœVO 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°Uœa ÒO +dY\ ]dMdOUK i]¸c]dcp ]dMdOUKXSO +dY\K  >KNOU V_L 4KXUK XKMS]UKT¦  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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°Uœa =c]^OW  ]dMdOUKXSO +dY\K dXYa_ i]¸c]dcp ]dMdOUKXSO +dY\K ZYXYaXSO  >KNOU V_L 4KXUK XKMS]UKT¦  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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 wCIEšKA IA YC Uš U DK PA PRZY

4E DWA SCENARIUSZE NIE WYKORZYSTUJ” wCIEšKI ALTERNATYWNEJ REPREZENTUJ”CEJ SYTUACJÅ GDY !ZOR ZOSTAJE NA ZEWN”TRZ PO ZAMKNIÅCIU DRZWICZEK



TO BÅDZIESZ Y *E  TAKšE MUSIAŽ WYKONAÁ KROK 

‡

           



            

¤‡

       

‡

            

¡‡

       

œ‡

            



            



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]^KXœaWc ]S° MY ^OX UYN ZYaSXSOX \YLS¨j 5WA‘AM ‘E POWINNIvMY JESZCZE RAZ SPRAWDZI· NASZ LIST» WYMAGA 3KORO ZMIENIˆY SI» WYMAGANIA 4ADKA I *ANKI TO TAK‘E NASZA LISTA WYMAGA MOGˆA 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|7–Ro 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 OKREwLIŽEw PODCZAS ANALIZY RΚNYCH SCENARIUSZY DZIAŽANIA DRZWICZEK DLA PSA PRZEDSTAWIONYCH NA STRONIE 

JESTEu TUTAJ  

-ODYFIKACJA LISTY WYMAGAÊ

?d_ZO¸XSOXSO VS]^c acWKQKº  ®- Ru u¥˜lu¬ |7˜t¥¸¬É plqp- y|ª¬Ai ²AlR¸Rp -q R–y- ¬ª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ª¬p–R²qlql²u¬ ª˜®¬˜ plR ‚¥yp ¬G p }–R o¥¸ ˜Ô |7˜t¥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 aUSŽYSZENIEMp SZCZEKANIA ORAZ OTWORZENIEM DRZWICZEK DLA PSA

4O S” ZUPEŽNIE INNE KROKI NIš  I  JEDNAK WI”š” SIÅ Z NIMI DOKŽADNIE 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°Uœa  >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 ZWI”ZANE  +dY\ acMRYNdS XK dOaX¦^\d Z WIÅKSZOwCI” KROKÎW ZNAJDUJ”CYCH  +dY\ dK¸K^aSK ]aYTO ZY^\dOLc SIÅ NA wCIEšCE 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°Uœa ]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 ZNAJDUJ”CE SIÅ OBECNIE NA wCIEšCE ALTERNATYWNEJ W PRZYPADKU UšYCIA PRZEDSTAWIONYM W POPRZEDNIM ROZDZIALE ZNAJDOWAŽY SIÅ NA wCIEšCE GŽÎWNEJb

bDLATEGO ZWI”ZANE 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°Uœa W_]S Lc¨ a ]^KXSO YU\OÄVS¨ USONc ZSO] ]dMdOUK  =c]^OW \YdZYdXKaKXSK NÐaS°Uœa 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Á WYWOŽYWANA ZA KAšDYM RAZEM GDY SPRZÅT $ARKA aUSŽYSZY p SZCZEKANIE class DogDoorSim { }

0ODOBNIE JAK W PRZYPADKU URZ”DZEN DO ROZPOZNAWANIA SZCZEKANIA TAKš IA I SAME DRZWICZKI DLA PSA SKŽADAJ” 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 REPREZENTUJ”CY 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 WœQ¸ ZYaSONdSO¨$ i.YUYXK¸OW ^OQY 7YTO YZ\YQ\KWYaKXSO TO]^ QY^YaO NY dK]^Y]YaKXSK a \dOMdcaS]^cW ÄaSOMSO p

TO JEST NOWY ROZDZIAŒ  

4EN uWIAT KOCHA PSY

4ONOX ZSO] NaK Z]c ^\dc Z]c Md^O\cj ' \l–ulR ˜lRJ–®ªl- ª˜®¬˜ p| ‚–®R7lRa- ®a|JylR ® ‚q-yRu‡ |ª- ªR–˜o- J–®ªlA®RpG J| p }–Ro |‚–|a–-u|ª-ylR y-‚l˜-tR² ª ‚|‚–®RJylu –|®J®l-qRG ˜‚–®RJ-oR ˜lÖ o-p ‚–®¬˜t|ªl|ªR AlR‚tR 7¥tRA®pl‘V 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 KA‘DYM RAZEM GDY ZASZCZEKA PIES SSIADÄW .IE TEGO OCZEKIWAˆAM WYDAJC PIENIDZE NA T» NOW WERSJ» DRZWICZEK

(ANKA

(RAUU (RAUU $RZWICZKI DLA PSA ZAMONTOWANE W DOMU (ANKI POWINNY SIÅ IE OTWIERAÁ WYŽ”CZNIE NA SZCZEKAN "RUSAb ALE OTWIERAJ” SIÅ TAK JEwLI W S”SIEDZTWIE ZASšE 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 KAšDY UšYWA 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 S”SIEDZTWIE 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 ZŽY 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]YLœa% 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°Uœa 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 WœQ¸ 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\dcZKNUœa 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Ä WœQ¸ 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 U˜YCIA BYŒY 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Ö |p–R²qlÉG o-plR ®ul-y¬ u¥˜lu¬ ª‚–|ª-J®lÉ ª p|J®lR y-˜®Ro -‚qlp-Aol‡

0A PA !ZORKU /D TERAZ BÅDZIEMY UšYWALI OKREwLENIA aPIES WŽAwCICIELAp

/TO ZAKTUALIZOWANY KROK KTÎRY OBSŽUGUJE OTWIERANIE DRZWICZEK TYLKO I WYŽ”CZNIE WTEDY GDY SZCZEKA PIES WŽAwCICIELA

.IE ZAPOMNIJ ZMODYFIKOWAÁ TAKšE I TEGO KROKU



5SUNÅLIwMY WSZYSTKIE ODWOŽANIA KONKRETNYCH WŽAwCICIELI I PSÎW DO DZIÅ CZEMU W OBECNEJ POSTACI TEN PRZY KI UšYCIA BÅDZIE MOšNA 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°Uœa 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 aWŽAwC Y UšYWAÁ 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°Uœa  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 WˆAvCICIELA 7 PRZECIWNYM RAZIE NIE B»DZIEMY MIELI Z CZYM PORÄWNA· SZCZEKANIA KTÄRE aUSˆYSZAˆ 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°Uœa 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 UšYCIA BÅDZIE SIÅ SKŽADAÁ WYŽ”CZNIE Z DWÎCH KROKÎW POZA TYM NIE BÅDZIESZ MUSIAŽ SIÅ PRZEJMOWAÁ JAKIMIKOLWIEK wCIEšKAMI 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 UšYCIA ZATEM NADAJMY MU TYTUŽ ODPOWIADAJ”CY CZYNNOwCIOM JAKIE OPISUJE

 JESTEu TUTAJ  

.OWY PRZYPADEK U˜YCIA

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 NaœMR Z\dcZKNUœa _Ò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 NaœMR 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 |p–R²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 |7˜t¥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 UšYWALIwMY W ROZDZIALE  PRZEDSTAWIAJ” ONE PODSTAWOWE ELEMENTY Z JAKICH SKŽADA SIÅ KOD APLIKACJI 0AMIÅTAJ šE TO S” ATRYBUTY KLASY KTÎRE ZAZWYCZAJ ODPOWIADAJ” ZMIENNYM SKŽADOWYM KLASYb

.YQ.YY\ YZOX$ LYYVOKX

cZO$ >cZO QO^,KMUAYYN$ AYYN QO^>YZAYYN$ AYYN WK^MRO]3X]^\_WOX^=ZOM$ LYYVOKX 4RÎJK”TNA W ODRΚNIENIU OD ZWYKŽEJ STRZAŽKA OZNACZA GENERALIZACJÅ 'ENERALIZACJA SŽUšY 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 ^cZœa ]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¨ ]aœT 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 ZOSTAŽA A DLA KAšDEGO JAKO ABSTRAKCYJNA ZOSTAN” UTWOR TYPU INSTRUMENTU OD NIEJ KLASY ZONE DZIEDZICZ”CE 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 WŽA TKI ZYS WS GO NIE Z } PUJ” WE WSZYSTKICH

KTÎRE NIE WYSTÅ JAK NUM3TRINGS INSTRUMENTACH TAKIE B”Dz 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 MOšNA KŽADNIE OCZEKIWAÁ PORÎWNUJE WŽAwCIW return false; OwCI W TEJ KLASIE if (backWood != otherSpec.backWood) Z WŽAwCIWOwCIAMI return false; DOSTÅPNYMI W INN OBIEKCIE REPREZEN YM if (topWood != otherSpec.topWood) JAK”w SPECYFIKACJÅTUJ”CYM return false; TÅ BÅDZIEMY JEDNA  -ETODÅ return true; PRZESŽONIÁ 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Á WŽAw 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 WŽAwCIWO 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 UšYWA 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 WŽAwCIWOwCI 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\R–RyAol J| ˜ ¬q¥ u-yJ|qly¬ „y‚‡F ‘ q¥7  ‘… l ylRA| ®u|J¬\lp|ª-É uR |JÖ matches()F public class MandolinSpec extends InstrumentSpec {

WŽAwCIWOwÁ STYLE 4YLKO MANDOLINY MAJ” NIE PRZENIEwLIwMY ODU POW O TEG Z WŽAwNIE 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 ZYNaœTX¦ \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 ^cZœa

i-dcW TO]^ IIIIIIIIIIIIIIIII)p

4UTAJ ZAPISZ PYTA KTÎRE ODPOWIEDz NIE NA PRZEDSTAWILIwMY WŽAwNIE 

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–\Ro˜lRG ª 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 lu‚qRuRy -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 |p–R²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\YLVOWœa 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  iR–uR ¬®-Aol ‚l˜-ql²u¬ o¥¸ A-tplRu ˜‚|–|G ‚–®RJR ª˜®¬˜ plu ª p|y Rp²AlR ®-‚|7lRa-yl‚|ªlRq-yl¥ p|J¥‡ RJy-p iR–uR ¬®-Ao- Ai–|yl y-˜ ylR  ¬qp| ‚–®RJ ®ª¬A®-oy¬u ‚|ªlRq-ylRu \–-auRy }ª p|J¥ uR |JÔ ˜p|‚l¥oklkªpqRo‘‡ R–uR ¬®-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-ª-É iR–uR ¬®-Aol  R \–-auRy ¬ p|J¥G p }–R ¥qRa-oÔ ®ul-y|u‡

/TO PRZYKŽAD BARDZO PROSTEJ KLASY REPREZENTUJ”CEJ ARTYSTÅ MALARZA KTÎRY MOšE WYKONYWAÁ TRZY OPERACJE PRZYGOTOWAÁ NOWE SZTALUGI WYCZYwCIÁ PÅDZLE I ROZPOCZ”Á TWORZENIE NOWEGO DZIEŽA

/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 UšYWANIA SAMYCH MOšE SIÅ TAKšE SPOSÎB wÁ MALOWANIA OBRAZÎW BKO SZY PÅDZLIb A NAWET TYM MIEJSCU KLASY ! ZATEM TO WŽAwNIE W ZMIANY 0AINTER MOG” ZACHODZIÁ

'¬aqÔJ- y-  |G ¸R pq-˜- Painter ‚|˜l-J- JªlR uR |J¬G p }–R ˜Ô –-A®Ro ˜ -tR‘G |–-® uR |JÖ paint()G p }–- y- ‚Rªy| 7ÖJ®lR ˜lÖ ®y-A®ylR ®ulRyl-É ª ‚|˜®A®Ra}qy¬Ai lu‚qRuRy -Ao-Ai‡  ®- Ru ˜‚–}7¥ou¬ iR–uR ¬®|ª-É  R \–-auRy ¬ pq-˜¬G p }–R u|aÔ ˜lÖ ®ulRyl-É W ª  ¬u ARq¥ ¥˜¥Íu¬ lu‚qRuRy -AoÖ ˜‚|˜|7¥ u-q|ª-yl- ‚|®- pq-˜Ö Painter‡

(ERMETYZOWALIwMY KOD KTÎRY MOšE 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 AŽY W RΚNYCH KLASACH IMPLEMENTUJ”CYC H INTERFEJS 0AINT3TYLE



/BIEKTOWA KATASTROFA

)NTERFEJS REPREZEN 0AINT3TYLE KTÎRY CZÅTUJE STYL MALOWA ZMIANOM STO MOšE 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 ZYaœN

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 DZIAŽANIE JEST ZWI”ZANE Z RUSZANIEM I ZATRZYMYWANIEM SIÅ SPOSOBEM WYMIANY OPON SPOSOBEM PROWADZENIA SAMOCHODU PRZEZ KIEROWCÅ MYCIEM SAMOCHODU A NAWET ZE SPRAWDZANIEM I WYMIAN” OLEJU

+_^YWYLSVO *AK MOšNA SOBIE WYOBR "!2$:/ 7)%,% PRZYCZAZIÁ ISTNIEJE DOPROWADZIÁ DO KONIEC YN KTÎRE MOGŽYBY KLASY *EwLI MECHANIK ZNOwCI ZMIANY TEJ SPRAWDZANIA STANU OLEZMIENI SPOSÎB JU ALBO KIEROWCA ZMIENI SPOSÎB PROWADZE B”Dz 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‡ +AšDA 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 /BSŽUGU STAŽA SIÅ :.!#:.)% RUSZANIA ZATRZYM JE ONA JEDYNIE OPERACJE WARTOwCI ATRYBUTU YWANIA SIÅ ORAZ ZWRACANIA 4ERAZ JEST ZNACZN OKREwLAJ”CEGO 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ÎGŽBYw ROZDZIELIÁ NAWET TE DWIE FUNKCJE I ROZDZIELIÁ FUNKCJONALNOwÁ KLASY -ECHANIC NA BARDZIEJ SZCZEGΎOWE KLASY POCHODNE

$O TEJ PORY RADZIˆEv SOBIE CAˆKIEM DOBRZE JEDNAK TERAZ NADSZEDˆ CZAS NA /34!4%#:.~ +!4!342/&œ 0ONI‘EJ PRZEDSTAWIONY ZOSTAˆ DIAGRAM KLAS APLIKACJI KTÄRA DELIKATNIE MÄWIC NIE JEST ZBYT ELASTYCZNA !BY UDOWODNI· ‘E NAPRAWD» JESTEv W STANIE UNIKN· OBIEKTOWEJ KATASTROFY ZAPISZ PONI‘EJ JAK ZMIENIˆBYv 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 UšYWANE S” IMPLEM INTERFEJSU $ESSERT 4E ENTACJE JEDN” s ORDER$ESSERT DWIE METODY MOšEMY ZAST”PIÁ  s KTÎRA BÅDZIE ZW RAC TYPU $ESSERT A ZATEM BÅDZIE UšYWAÁ 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

-OšNA WSKAZAÁ WIÅCEJ NIš JEDEN POWÎD KTÎRY MÎGŽBY 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 SŽUš”CEJ SPECJALNIE DO DODAWANIA WŽAwNIE TEGO TYPU *EST TO BOWIEM PRZYKŽAD KODOWANIA POD K”TEM 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 PRZYKŽADZIE WYSTÅPUJE INNIwMY SPRÎBOWAÁ IMPLEMENTACJI METODY SERVE  0OWMENTY KODU I UMIEwCIÁ HERMETYZOWAÁ ZMIENIAJ”CE SIÅ FRAG DESERÎW W JEDNYM CAŽY KOD ZWI”ZANY 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 UšYWANA

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° ]dMdOQœVXSO \œÒ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 ZYaœN NY aZ\YaKNdKXSK dWSKX

+ dK^OW WœQ¸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 WYGL”DAJ” DOSYÁ PODOBNIEb -OšE MOGLIBYwMY WYODRÅBNIÁ Z NICH WSPÎLNE WŽAwCIWOwCI 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 WŽA 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 BYˆO GOvCI· W PROGRAMIE TAKIEGO ZAWODNIKA JAK 4Y I NAPRAWD» BARDZO BYvMY CHCIELI ZAPROSI· #I» W PRZYSZˆYM TYGODNIU JEDNAK WˆAvNIE DOSTALIvMY BARDZO PILN WIADOMOv· OD a2YvKA #ZY WIESZ MO‘E 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