Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak odróżnić programowanie obiektowe od strukturalnego ?

Ostatnio zmodyfikowano 2015-04-06 17:14
Autor Wiadomość
arek213
Temat założony przez niniejszego użytkownika
Jak odróżnić programowanie obiektowe od strukturalnego ?
» 2015-04-04 22:55:21
Tak jak w temacie ? Jeśli działam na obiekcie to już to jest programowanie obiektowe ? Jeśli argumentem funkcji jest struktura to już to nie jest programowanie obiektowe ? Co to jest paradygmat programowania obiektowego ? Czytałem w internecie, ale nie mogę zrozumieć. Dzięki.
P-130149
DejaVu
» 2015-04-04 23:11:21
jezeli w kodzie wystepuja definicje metod to jest to programowanie obiektowe.
P-130152
arek213
Temat założony przez niniejszego użytkownika
» 2015-04-04 23:24:02
A jeśli nie to jest to programowanie strukturalne i to tyle ? A co to jest paradygmat programowania obiektowego
P-130156
akwes
» 2015-04-05 10:51:42
Właściwie odpowiedź na ten temat nie jest taka prosta. Architekturę obiektową możemy mieć nie tylko w językach, które wspierają obiektowość. Za architekturę obiektową możemy też uznać coś, co będzie już SOA ponieważ będziemy mieli za wąski obraz widzenia danej aplikacji.

Czy architektura jest obiektowa czy nie jest obiektowa, nie zależy od użytych konstrukcji języka czy w ogóle języka. Używając obiektów można napisać całkowicie nieobiektowy kod. Generalnie na Wikipedii masz opisane trzy założenia paradygmatu obiektowego. Jeżeli dany kod spełnia te paradygmaty to można go uznać za obiektowy np. sposób implementacji wirtualnego systemu plików w linuksie, gdzie mimo użycia języka C architektura jest jak najbardziej obiektowa.

Dzięki połączeniu stanu (pól) oraz zachowań (metod) możemy zastosować wspomniane wcześniej paradygmaty. Postaram się mocno je uprościć do bardzo przykładowych:

Abstrakcja - jeżeli masz klasę to posiada ona zbiór metod. Nie interesuje Cię jak dana klasa jest zaimplementowana a Ty po prostu korzystasz z jej interfejsu (metod). W języku C++ możemy to naturalnie osiągnąć za pomocą klas zaś w C na przykład możemy prefiksować dane funkcje nazwą klasy albo trzymać wskaźniki na funkcje w ciele struktury.

Hermetyzacja - Twoja klasa ma pewne 'własne' funkcje i 'własne' pola. Nie są one częścią interfejsu i nie wolno z nich korzystać. Dzięki temu uzyskujemy niemożność ingerencji innych obiektów w miejsca gdzie nie powinny ingerować. W C++ uzyskujemy to za pomocą specyfikatorów dostępu tak samo jak w Javie czy C#, gdzie hermetyzacja jest jeszcze bardziej rozbudowana ale np. w Pythonie czy JavaScripcie umawiamy się, że pola i metody poprzedzone "_" lub "__" są prywatne.

Polimorfizm - tutaj używane obiekty zachowują się zgodnie ze swoim typem. W dużym uproszczeniu, jeżeli masz listę Aut to każde z nich będzie spalać analogicznie do swojego typu podczas jazdy.

Na Wikipedii jest jeszcze opisane dziedziczenie ale jest to narzędzie realizujące trzy wcześniejsze założenia.

Na pytanie czy dany program jest obiektowy może odpowiedzieć nam jedynie logika rozmyta. Bo program może być obiektowy np. tylko w 60%.

P-130165
arek213
Temat założony przez niniejszego użytkownika
» 2015-04-05 16:52:14
A co to jest paradygmat programowania obiektowego
P-130188
pekfos
» 2015-04-05 18:33:00
P-130203
arek213
Temat założony przez niniejszego użytkownika
» 2015-04-06 17:10:37
Według tego co tam przeczytałem to paradygmat programowania to jest obiekt ?
P-130277
pekfos
» 2015-04-06 17:14:55
paradygmat programowania, w którym programy definiuje się za pomocą obiektów
P-130280
« 1 »
  Strona 1 z 1