Odnośniki
|
[ Pobierz całość w formacie PDF ]
jekcie ka dy obiekt realizuje dobrze jedno zadanie, lecz nie stara si robić zbyt wiele. Jak mo na si byÅ‚o przekonać, rozwi zanie takie nie tylko pomaga w odnajdywaniu obiektów, które mo na by wykorzystać (obiekt stanowi cy interfejs drukowania), lecz tak e stwarza mo liwo ć pisania obiektów nadaj cych si do wielokrotnego wykorzystania w ró nych programach (na przykÅ‚ad katalog czeków). Traktowanie obiektu jako dostawcy usÅ‚ug jest podej ciem, które wiele uÅ‚atwia i jest przy- datne nie tylko podczas procesu projektowania, lecz tak e w sytuacjach, gdy inne osoby sta- raj si przeanalizować kod lub powtórnie wykorzystać obiekty je li mo na ocenić warto ć obiektu na podstawie wiadczonych przez niego usÅ‚ug, znacznie Å‚atwiej mo na go dopasować do tworzonego projektu. 5R]G]LDä u :SURZDG]HQLH Z ZLDW RELHNWÑZ 8NU\ZDQLH LPSOHPHQWDFML Warto dokonać rozró nienia pomi dzy twórcami klas (ang. class creators, którzy definiuj nowe typy danych) a programistami-klientami (ang. client programmers4; konsumentami klas, którzy wykorzystuj te typy danych w swoich aplikacjach). Celem programisty-klienta jest zebranie zestawu klas-narz dzi gotowych do wykorzystania w szybkim tworzeniu aplikacji. Celem twórcy klas jest natomiast przygotowywanie takich klas, które udo- st pniaj programi cie-klientowi jedynie to, co dla niego niezb dne, a caÅ‚ reszt trzy- maj w ukryciu. Dlaczego? Poniewa to, co ukryte, nie mo e zostać wykorzystane przez programist -klienta, a zatem twórca mo e zmienić niewidoczn cz ć, nie przejmuj c si ewentualnym wpÅ‚ywem tych zmian na inne cz ci. Ukryta cz ć zwykle reprezen- tuje delikatne wn trze obiektu, które mogÅ‚oby z Å‚atwo ci zostać popsute przez nie- uwa nego lub niedoinformowanego programist -klienta. Z tego powodu ukrywanie im- plementacji zmniejsza liczb bÅ‚ dów w programach. Nie sposób przecenić idei ukrywania implementacji. W ka dej relacji istotne jest istnie- nie ogranicze respektowanych przez wszystkie uczestnicz ce w niej strony. Gdy two- rzymy bibliotek , nawi zujemy równocze nie pewn relacj z jej klientem, b d cym równie programist , ale takim, który ma na celu zÅ‚o enie aplikacji za pomoc naszej biblioteki, ewentualnie zbudowanie biblioteki wi kszej. Gdy wszystkie skÅ‚adniki klasy s dost pne dla wszystkich, wtedy programista-klient mo e z klas zrobić wszystko nie istnieje aden sposób na wymuszenie przestrzegania reguÅ‚. Nawet je li naprawd nie chcemy, aby klient manipulowaÅ‚ bezpo rednio niektórymi ze skÅ‚adników naszej klasy, bez mechanizmów kontroli dost pu nie istnieje sposób uniemo liwienia tego. Wszystko jest publiczne i widoczne dla caÅ‚ego wiata. Pierwszym uzasadnieniem kontroli dost pu jest ch ć wymuszenia na kliencie trzymania r k z daleka od rzeczy, których nie powinien dotykać cz ci niezb dnych do wyko- nywania wewn trznych operacji naszego typu danych, nie b d cych jednak cz ci in- terfejsu, którego potrzebuj u ytkownicy do rozwi zywania konkretnych problemów. Kontrola taka jest korzystna dla u ytkowników, pozwala im bowiem Å‚atwo odró nić to, co dla nich istotne, od tego, co mog zignorować. Drugim powodem wprowadzenia kontroli dost pu jest umo liwienie projektantowi biblio- teki wymiany wewn trznych mechanizmów klasy bez zastanawiania si nad wpÅ‚ywem tej czynno ci na programistów-klientów. Mo na na przykÅ‚ad zaimplementować jak klas w prymitywny sposób w celu uproszczenia pracy, a w pó niejszym terminie (je li oka e si to konieczne) przepisać j , aby dziaÅ‚aÅ‚a szybciej. Je eli interfejs i implementacja s od siebie wyra nie oddzielone i chronione, wtedy osi gni cie tego nie jest trudne. Java posiada trzy sÅ‚owa kluczowe sÅ‚u ce do ustanowienia rozgranicze w klasach. S to: RWDNKE (publiczny), RTKXCVG (prywatny) i RTQVGEVGF (chroniony). Ich u ycie i znaczenie jest dosyć oczywiste. S to tzw. specyfikatory dost pu (ang. access specifiers) okre- laj , kto jest upowa niony do u ywania nast puj cych po nich definicji. Specyfikator RWDNKE oznacza, e definicje s dost pne dla ka dego, natomiast RTKXCVG, e dost p do
[ Pobierz całość w formacie PDF ]
zanotowane.pldoc.pisz.plpdf.pisz.plblacksoulman.xlx.pl
|