Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Przewodnik po projektowaniu klas w PHP

Projektowanie solidnego API

Być może najważniejszą częścią projektowania klas jest konstrukcja solidnego API. API reprezentuje interfejs aplikacji. Z punktu widzenia klas, są to metody dostarczane klientowi, który będzie używał naszej klasy.

API to część naszej klasy, na której bazuje kod klienta. Pomijając API możemy robić cokolwiek zechcemy. Oznacza to że nazwy metod, które udostępniamy nie powinny się zmieniać, tak jak ich argumenty i wartości, które zwracają. Obiektowość pozwala nam na wprowadzanie zmian do kodu, nie zmieniając samej aplikacji klienckiej.

W PHP jest to szczególnie istotne, by klient (w PHP 4.x) miał dostęp do wszystkiego, włączając zmienne klasy. Istotne, jest zatem to, aby stworzyć API, które raczej dostarczy klientowi wszystko czego potrzebuje, niż pozwoli, aby klient wybierał skróty bezpośrednio do zmiennych klasy, które później mogą zostać zmodyfikowane.

Złym nawykiem jest pozwalanie na dostęp z zewnątrz do zmiennych klasy. Ta czynność zawsze powinna zostać wykonana poprzez metodę, nawet jeśli miałaby ona zwracać wartość tylko jednej zmiennej. Patrząc na Eclipse, widzimy, że niektóre metody zostały określone mianem "ACCESSORS" - to właśnie one stanowią API.

Generalnie jeśli potrzebujemy zmieniać radykalnie funkcje naszej klasy, to jednym ze sposobów jak możemy to zrobić, nie pozbawiając funkcjonalności wcześniejszy kod, jest stworzenie dziecka tej klasy, które będzie nadpisywało metody rodzica. Starszy klient może dalej pracować z rodzicem, podczas gdy nowy kod będzie używał dziecka (nie powinniśmy tutaj wariować - zobacz "Używanie dziedziczenia").

Z praktycznej strony, bardzo funkcjonalnie jest zacząć pisanie klasy od stworzenia pustego szablonu, który zawierałby same nazwy funkcji - bez kodu wewnątrz. Pomaga to skoncentrować się na całości API, bez zatrzymywania się na drobnych, uciążliwych problemach.

Czym lepiej napiszemy API, tym łatwiej będzie nam wprowadzać, w późniejszym etapie, zmiany do naszego kodu na poziomie "mikroskopijnym" (np. wewnątrz pojedynczej klasy) - nie narażając się na `padnięcie` całej aplikacji.

Warto zainwestować w jakieś narzędzia do tworzenia diagramów UML. W znacznym stopniu pomagają projektować klasy oraz relacje między nimi. Zapraszam do przejrzenia linków oraz wzięcia udziału w dyskusji pod tytułem: UML i PHP.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2021 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System