Przy piwie o programowaniu

Bo programowanie obiektowe to nie samo programowanie, tylko filozofia programowania. Taka barmanka na przykład ma interfejs z klientem. Ma metodę publiczną "podaj piwo", ale metoda "umyj kufel" jest już prywatna. Przecież klient nie podejdzie do barmanki i nie powie "umyj kufel i podaj piwo", tylko samo "podaj piwo". A to, czy barmanka przed podaniem mu piwa umyje mu kufel, zależy od tego, jak zaimplementowano jej metodę "umyj kufel".

Cały bajer polega na tym, że barmankę możemy napisać w C++, a nawet w C, chociaż wtedy będzie udawać C++. A jak się uprzemy, możemy ją nawet w PHP napisać. W Delphi też, ale to już będzie tylko makieta barmanki.

I tak działa programowanie obiektowe.

Cytat "mniej-więcej".

Napisał zammer, 16 grudnia 2009 o godzinie 01:54:42
Kategorie: Głupawki 10 komentarzyRSS komentarzy
Poziom wpisu: 0 Trackback

Komentarze:

http://blag.dodecki.net/files/favicon.png

1. Dodek 16 grudnia 2009, 09:06:35 [permalink]

Zabawne, żaden z wymienionych przez ciebie języków nie jest OO, chociaż pewnie mamy inne definicje OOP - moja nie jest ENTERPRISE QUALITY.

http://matekm.jogger.pl/files/favicon.png

2. matekm 16 grudnia 2009, 09:22:31 [permalink]

on nie mówi o językach obiektowych a o programowaniu obiektowym.

Zresztą - istnieje w ogóle coś takiego jak "języki obiektowe"? Ja zawsze spotykałem się z określeniem "języki zorientowane na programowanie OO" lub prościej "języki zorientowane obiektowo". Jest jakaś poważna publikacja książkowa wyjaśniająca czym jest język obiektowy?

Co do OO: C++ jest OO.

Co do samego programowania zorientowanego obiektowo (z naciskiem na "zorientowanego) - to technika i jako taka nie jest właściwością języka. Może być z powodzeniem stosowana zarówno programując w języku C jak i C++, Javie, Pythonie i innych.

Jeżeli faktycznie istnieją "języki obiektowe" (coś jak Java? wymusza stosowanie klas?) to trzeba rozróżniać "języki obiektowe" od "programowanie zorientowane obiektowo"

http://blag.dodecki.net/files/favicon.png

3. Dodek 16 grudnia 2009, 09:28:08 [permalink]

"Zresztą - istnieje w ogóle coś takiego jak "języki obiektowe"?"

Słyszałem ludzi używających tego określenia, ale jest ill-defined, więc go nie użyłem, w związku z czym nie wiem, co miała na celu Twoja wypowiedź.

"Jeżeli faktycznie istnieją "języki obiektowe" (coś jak Java? wymusza stosowanie klas?)"

Prędzej message passing i late binding. OOP to nie tylko klasy, metody i dziedziczenie, o czym wielu zdaje się zapominać/nie wiedzieć.

http://matekm.jogger.pl/files/favicon.png

4. matekm 16 grudnia 2009, 09:36:01 [permalink]

@Dodek: taka dygresja. Główna część jest o językach OO i programowaniu zorientowanym obiektowo

a, widzę. Miało być "mówi o programowaniu obiektowym a nie o językach OO" a nie "o językach obiektowych"

http://radmen.jogger.pl/files/favicon.png

5. radmen 16 grudnia 2009, 09:58:19 [permalink]

Zresztą - istnieje w ogóle coś takiego jak "języki obiektowe"?

Są języki w pełni obiektowe, przykładowo Smalltalk, Python.

http://blag.dodecki.net/files/favicon.png

6. Dodek 16 grudnia 2009, 09:58:52 [permalink]

Akurat może nie porównuj Smalltalka z Pythonem, bo to dwie zupełnie różne rzeczy.

http://radmen.jogger.pl/files/favicon.png

7. radmen 16 grudnia 2009, 09:59:40 [permalink]

Dodek: nie porównuję ich. Mówię jeno, że to są jedne z języków w pełni obiektowych :) Miałem to ostatnio na wykładach z "Języków Programowania Obiektowego" :)

http://matekm.jogger.pl/files/favicon.png

8. matekm 16 grudnia 2009, 10:12:42 [permalink]

@radmen: dzięki za info :)

http://blog.teamon.eu/files/favicon.png

9. teamon 16 grudnia 2009, 11:05:37 [permalink]

@radmen Nie zapominaj o ruby! ;]

http://radmen.jogger.pl/files/favicon.png

10. radmen 16 grudnia 2009, 11:08:13 [permalink]

teamon: och się uczepiliście. Podałem przykłady tylko! :)

Dodaj komentarz:

Markdown włączony w komentarzach (opis znaczników)