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

"OO" - Programowanie obiektowe w praktyce

Porówanie i podsumowanie

Jak widzicie podejście obiektowe jest co najmniej ciekawe. Nieco więcej myślenia przy samym projektowaniu klas (w przeliczeniu na napisany kod wyjdzie tyle samo lub mniej, jeśli umiejętnie wykorzystamy dziedziczenie) owocuje rozwiązaniem, którego aż miło się używa. Kod jest logicznie podzielony w jednostki, które odpowiadają realnym obiektom, rzeczom z "niewirtualnego świata". Istnieją powiązania między tymi jednostkami, których używamy aby opisać ich podobieństwo.

Podobieństwo typu np. Ptak i Mewa realizujemy za pomocą tzw. dziedziczenia klas. Klasa Mewa dziedziczy funkcjonalność Ptaka, jest Ptakiem. Możemy także wykorzystać podobieństwo interfejsu, czyli jakby zewnętrznego wyglądu i zachowania, tutaj wykorzystujemy polimorfizm (zostanie opisany w osobnym rozdziale podobnie jak dziedziczenie). Gdzie się da ukrywamy implementację, czyli to "co mamy pod maską", poprzez hermetyzację. Ptak nie musi wiedzieć, że je DdżownicusPospolitus, wystarczy mu informacja, że pożera Robaka. Wykorzystując te trzy techniki (dziedziczenie, polimorfizm i hermetyzację) możemy później łatwo "podrasować" to co już stworzyliśmy, a użytkownik naszej klasy nie będzie musiał poprawiać kodu, gdzie jej używa. Elastyczność i wygoda użytkowania, kosztem nieco większego czasu poświęcanego na projektowanie klas i relacji między nimi.

Czas ten można zmniejszyć stosując odpowiednie metodologie (XP, CRC, Use Cases) i trzymając się pewnych zasad (Open-Close, Liskov Subst. itd.) lub po prostu nabierając doświadczenia. Tak można najkrócej podsumować podejście "OO". Pisząc proceduralnie z czasem zaczynamy grzęznąć w bagnie wciąż narastającego kodu, stale zwiększającej się liczbie funkcji. Kod jest przeważnie tak powiązany ze sobą, że rzadko jesteśmy w stanie wykorzystać choćby fragmenty ponownie w innych projektach. W "OO" tak projektujemy klasy, aby to umożliwić. W gąszczu funkcji można się zgubić, kod "OO" jest przejrzyście podzielony w jednostki, na klasy.

Jeśli nie piszemy programiku typu "Hello World" tylko coś ambitniejszego to powinniśmy się zastanowić, czy zależy nam na jakości tworzonego kodu. Jeśli tak - zapraszam do przeczytania mojego kursu "OO" - ogólne zasady już znasz, teraz będziemy się już tylko zagłębiać w szczegóły :)

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (3)
:))
Piątek 11 Kwiecień 2008 2:45:35 pm - lonas

Bardzo fajne ale ... czemu takie krotkie wiecej !! :)

koment
Czwartek 26 Lipiec 2007 10:46:57 pm - plurr <xytrass_at_o2.pl>

bardzo fajny artykul, nareszcie jasniej zrozumialem klasy ;p Tylko gdzie reszta ? :))

To są podstawy?
Niedziela 22 Lipiec 2007 10:36:39 am - solari_de_marco <solari_de_marco_at_interia.pl>

Kurs niby podstawy a .... Potrafię dobrze programować strukturalnie i chciałem się nauczyc OO i mi to ciężko idzie... :/ Myślałem ze tu się czegoś nauczy, niby oki ale ... jak mam się połączyć z bazą danych? Gdzie jest wyjasnienie ze trzeba wybrac baze danych, połączyc sie i itp, jak podajesz kod wykożystania klas to już pokaż jak się łaczyć z tą bazą danych !!

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2020 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System