pisać programy obiektowo czy strukturalnie?



start

o mnie

jak zamawiać

najczęœciej zadawane pytania

nasze projekty

znalezione w seci

Szczerze mówiąc kusi mnie by ograniczyć odpowiedź na powyższe pytanie do jednego słowa - obiektowo ale nie idźmy na łatwiznę -zacznijmy od początku czyli od definicji:

Programowanie obiektowe to metodyka pisania programów definiująca same programy przy pomocy obiektów zawierających w sobie zarówno dane jak i zachowania programu czyli metody w programowaniu strukturalnym nazywane funkcjami i prcedurami. Opisany w ten sposób program wyrażony jest jako suma obiektów,kóre komunikują się ze sobą za pomocą metod w celu wykonywania postawionych przez programistę zadań. Takie podejście ułatwia sprawne pisanie dużych aplikacji przez całe zespoły programistów poprzez składanie ich ze wzajemnie współpracujących ze sobą części (obiektów) odpowiadających za wykonywanie posczególnych zadań programu.

Programowanie strukturalne jest niejako rozwinięcim koncepcji programowania proceduralnego i jest to metodologia pisania programów a podstawą jej jest hierachiczny podział kodu pogramu na moduły współpracujące ze sobą poprzez ściśle określone interfejsy. Dane, procedury i funkcje nie są tu ze sobą związane a instrukcje wykonywane są sekwencyjnie. Podstawą programowania strukturalnego są procedury, funkcjie, instrukcje warunkowe i pętle do dobrego tonu należy unikanie wszelkiego rodzaju skoków.

Tyle przeczytanych gdzieś definicji, teraz czas na moje (zapewne nieobiektywne) opnie: Otóż moim zdaniem poimo że programowanie obiektowe narzuca programiście spory reżim i obostrzenia które często zniechęcają młodych prograistów to jednak wytwała praca i poświęceje czasu na naukę programowania obiektowego niesie za sobą korzyści których wartość trudno przecenić.

Wyliczać je można bardzo długo , zacznę od tych które wynikają z samej definicji a i ja uważam je za najważniejsze: po pierwsze każdy napisany obiektowo program, możemy wykorzystywać w dalszej pracy przenosząc poszczególne klasy do innej aplikacji, w programach obiektowych łatwiej też o lokalizację błędu, szybciej można zrozumieć program napisany jakiś czas temu w przeciwieństwie do programowania strukturalnego, gdzie często by poprawić czy zmienić malutki fragment programu musielibyśmy edytować wiele fragmentów kodu źródłowego , wcześniej poświęcając bardzo dużo czasu na zrozumienie co programista (nawet jeżeli sami pisaliśmy program po pewnym czasie wydaje się on całkiem obcy) miał na myśli.

Niezwykle ważne wydają się też nowe możliwości jakie wynikają z obiektowego podejścia do programowania dla dużych zespołów programistów - ludzi którzy w praktyce często nawet się nie znają a tworzą wspólnie olbrzymie aplikacjie posługując się we wzajemnej komunikacji jedynie opisami metod danej klasy bez wnikania jak dana klasa jest zbudowana - interesuje ich tylko co danemu obiektowi należy dostarczyć i co otrzymujemy na wyjściu. Nepodważalną zaletą programowania obiektowego, jest to, że kod jest przejrzysty czytelny i zrozumiały, wystarczy rzut oka na definicję klasy i po chwili wiemy, za co odpowiada dany obiekt i dalej co robi dany fragment programu,

 W przypadku programowania strukturalnego, sytuacja wygląda diametralnie inaczej- progamista musi wiele wysiłku włożyć w to by kod był czytelny po drugie raz napisany program czy fragment programu nie nadaje się do kolejnego użytku, a przystosowanie go do nieco tylko innych zastosowań wiąże się często z wieloma poprawkami w wielu różnych miejscach programu. Kod napisany strukturalne raczej ponownie się nie przyda - zwykle mniej czasu zajmie napisanie nowej klasy od zera, niż babranie się bez końca w starym kodzie.

Kończąc ten tekst, pozwolę sobie wyrazić nadzieję że te kilka zdań które napisałem przekonają pzynajmniej część z Was do tego by nauczyć się programowania obiektowego. Nie mam złudzeń że to co opisałem tylko drobny fragment zalet tej metody programowania - jest ich znacznie więcej i przekoniancie się o tym podczas pracy z konkretnymi zadaniami - każdego dnia będziecie znajdować ich coraz więcej.

 

poprzednia strona       następna strona