Newsletter

Grupa MagazynyInternetowe

Online: 1001

Wyszukiwarka

UML, Programowanie

Kurs UML - część 2 - interfejsy

Kurs UML - część 2 - interfejsy W UML interfejsy są zestawem operacji, które wyznaczają usługi oferowane przez klasę i sposobem na przejrzystą prezentację projektu.

Marcin Staniszczak

Zapoznałeś się już ze sposobem prezentacji klas na diagramach klas, więc nadszedł czas na interfejsy. Twórcy języka UML rozumieją interfejsy jako zestaw operacji, które wyznaczają usługi oferowane przez klasę (lub komponent, lecz o komponentach będzie w przyszłości). Zagmatwane? Jak wszystkie regułki. Podejdźmy do sprawy od bardziej praktycznej strony - jak programiści.

Jeśli programowanie obiektowe nie jest ci obce, zapewne wiesz, jak rozumieć interfejs. Jeśli zaś w programowaniu obiektowym dopiero stawiasz pierwsze kroki, oto co powinieneś wiedzieć o interfejsach:

  • twoja aplikacja posiada zbiór klas wykonujących to samo zadanie w różny sposób.
  • z takiego zestawu klas robiących "to samo w różny sposób" (np. sortujących pewną tablicę różnymi algorytmami) wyłuskaj wspólny zestaw nazw operacji (metod), które pozwolą na ujednolicenie obsługi. Mówiąc inaczej, zadbaj o to, aby ta powiązana ze sobą rodzina klas miała takie same nazwy operacji publicznych.
  • zbierz takie operacje w specjalną klasę, w której operacjom nie będzie odpowiadał żaden kod. Będzie to jedynie zbiór nazw - to właśnie nasz interfejs.

Co to daje? Klasy implementujące nasz interfejs (w UML klasy realizują interfejsy) są zgodne co do typu. Wystarczy, że kod korzystający z takich klas zna budowę interfejsu, a już potrafi poprawnie posługiwać się wszystkimi klasami implementującymi ten interfejs.

Dlaczego? Interfejs wymaga, aby klasa realizująca go dostarczyła implementacji wszystkich określonych w nim operacji. Co więcej, operacje te muszą w klasie mieć takie same nazwy jak w interfejsie. Dzięki temu kod używający takiej rodziny klas, znając jednie interfejs, może bezpiecznie posługiwać się całą rodziną, nawet jeśli niektóre z klas powstały na długo po utworzeniu tego kodu. Typowy interfejs w UML-u może mieć taki sam symbol jak klasa, jednak wzbogacony o stereotyp <<interface>> - zobacz rysunek 1.

Rys. 1. Typowy interfejs Rys. 1. Typowy interfejs Rys. 2. Interfejs - symbol
kuli Rys. 2. Interfejs - symbol kuli

Widać tutaj zarówno nazwę interfejsu, jak i wszystkie jego operacje. Interfejs można także przedstawić w postaci uproszczonej - wówczas ma on postać kuli i nie widać na nim żadnych operacji (zobacz rysunek 2).

Powyższe interfejsy to tak zwane interfejsy udostępniające. Klasy realizują je, a zadanie realizacji przedstawiane jest na diagramie za pomocą strzałki z przerywaną linią i niezamalowanym grotem - zobacz rysunek 3.

Rys. 3. Realizacja
interfejsu przez klasę Rys. 3. Realizacja interfejsu przez klasę Rys. 4. Realizacja
interfejsu przez klasę
&#8211; interfejs w postaci kuli Rys. 4. Realizacja interfejsu przez klasę – interfejs w postaci kuli

W przypadku, gdy interfejs prezentowany jest w postaci kuli, związek realizacji pomiędzy klasą a interfejsem przedstawia się za pomocą linii ciągłej - rysunek 4.

Jeśli klasa korzysta z usług innych klas za pośrednictwem interfejsu, wówczas mówimy o interfejsie pozyskującym. Interfejs taki ma symbol łuku - rysunek 5.

Rys. 5. Interfejs pozyskujący Rys. 5. Interfejs pozyskujący

Klasa asocjacyjna

Wiesz już czym jest związek asocjacji - jeśli nie pamiętasz, zapoznaj się raz jeszcze z poprzednim odcinkiem kursu UML-a. Warto też wiedzieć o istnieniu klas asocjacyjnych. Są to klasy powiązane za pomocą linii przerywanej z asocjacją. Dzięki temu dana klasa opisuje asocjacje pomiędzy klasami, których ta asocjacja dotyczy. Na rysunku 6 zaprezentowano klasę asocjacyjną, mówiącą nam, że Osoba jest powiązana z Firmą poprzez bycie jej pracownikiem.

Warto także pamiętać, że w przypadku występowania klasy asocjacyjnej w kodzie programu, klasy biorące udział w asocjacji mogą, ale nie muszą, posiadać bezpośrednie połączenia pomiędzy sobą.

A więc klasa Osoba nie musi mieć bezpośredniego połączenia z klasą Firma. Klasa Osoba może mieć na przykład połączenie z klasą Pracownik, zaś klasa Pracownik z klasą Firma. Dzięki temu przez pośrednictwo klasy asocjacyjnej Pracownik jest powiązany z Firmą.

Diagramy obiektów

W przypadku gdy mamy do czynienia z bardziej złożonymi diagramami klas, można pokusić się o zbudowanie dodatkowo diagramu obiektów. Obiekty na diagramie prezentuje się za pomocą prostokątów, w których nazwa jest podkreślona. Po niej, po dwukropku, znajduje się nazwa klasy, której obiekt reprezentuje dany prostokąt. Na rysunku 7 przedstawiono powiązanie obiektów pracowników (klasy Pracownik) z obiektem klasy Firma.

Rys. 6. Klasa
asocjacyjna Rys. 6. Klasa asocjacyjna Rys. 7. Diagram
obiektów Rys. 7. Diagram obiektów

Zakończenie

W kolejnym odcinku zapoznasz się z nowymi diagramami - diagramami przypadków użycia. Tymczasem ćwicz z poznanymi już diagramami klas. Jeśli nie dysponujesz żadnym programem, który by to ułatwił, możesz zawsze rysować diagramy ołówkiem na kartce. Pamiętaj tylko o gumce do ścierania, ponieważ przyda się ona niejeden raz.

20 lipca 2008

Powiązane publikacje

Kurs UML - część 5 - diagramy czynności/aktywności

Kurs UML - część 5 - diagramy czynności/aktywności

Kurs UML - część 4 - przypadki użycia po raz drugi

Kurs UML - część 4 - przypadki użycia po raz drugi

Kurs UML - część 3 - przypadki użycia

Kurs UML - część 3 - przypadki użycia

Kurs UML - część 1 - wstęp i diagramy klas

Kurs UML - część 1 - wstęp i diagramy klas

 
Skomentuj
ten artykuł

Komentarzy: 3

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum czwartek, 4.02.2010 23:53LHB

Makabryczny zbieg okolicznośći Renata dodała komentarz rok temu w Thursday, w dodatku drugiego kwietnia, a ja czwartego lutego, pozatym oboje o dwudziestej trzeciej a 48 jest wielokrotnością 12. jakbym się pospiesył o 36 minut godzina byłaby identyczna... to taka bajka z morałem. Jak się spóźnisz to musisz bardziej kombinować. o/

Przejdż do tego postu na forum czwartek, 4.02.2010 23:48LightHouseBuddy

Świetny Kurs, przerobiłem go w godzinę, do tego wydrukowałem Tablice UML i teraz wiem już wszystko. Zostanę hakerem i podbiję świat. Do zobaczenia na pierwszych stronach gazet. o/

Przejdż do tego postu na forum czwartek, 2.04.2009 23:12Renata

Z ogromną przyjemnością , chciałabym pochwalić twórców tego poradnika.Przeczytałam wiele publikacji zarówno książkowych jak i internetowych i w każdej mi czegoś brakowało ,tu znalazłam niesamowicie przejrzyste przedstawienie wiedz o UML , także wszystko się staje proste i zrozumiałe.Jeszcze raz dzięki za wspaniałą pracę z waszej strony i pozdrawiam serdecznie.Będę częstym gościem waszej strony.

Zobacz wszystkie komentarze »

Autor

Marcin Staniszczak

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.