-
Data: 2014-02-20 04:19:30
Temat: Re: David West: OOP is Dead
Od: A.L. <a...@a...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Wed, 19 Feb 2014 01:58:35 -0800 (PST), g...@g...com
wrote:
>Jezeli idzie o pojecia hermetyzacji i polimorfizmu,
>to sa one ze soba zwiazane. Hermetyzacja to idea, ze
>szczegoly implementacyjne zwiazane z jakims zagadnieniem
>ukrywa sie za publicznym, dobrze okreslonym interfejsem.
>Polimorfizm zas, to taki pomysl, ze jezeli mamy rozne
>klasy, ktore implementuja ten sam interfejs, to mozna
>ich uzywac w takim samym kontekscie (sa ze soba zastepowalne
>-- moze nie w sensie funkcjonalnosci, ale w sensie mozliwego
>uzycia)
Zarowno hermetyzacja jai i polimorfizm nic nie maja ze soba wspolnego
ani nic nie maja wspolnego z obiektowoscia. Owszem, sa w jezykach OO
uzywane, ale powstaly zupelnie neizaleznie
"Hermetyzacja" ustala reguly dostepu do zmiennych i procedur. Istnieje
od dosyc dawna; w pelni uzyta pierwszy raz w jezyku Modula-2 Wirtha.
Jezyk definiowal "moduly" i reguly dostepu do nich. Pdobnai Ada
definiwala "packages" - pakiety, i reguly dostepu do nich. Bylo to na
dlugo pzred OO
Polimorfizm mowi z grubsza o operacjach ktore moba byc zaaplikowane do
zmiennych roznych typow, przy czym wlasciwa implementacja wybierana
jest automatycznie, stosownie do tych typow.
Operacja + w jezyku takim jak Pascal jest polimorficzna, bo dodawac
moze zmienne roznych typow, a procedura dodawania bedzie wybrana
wlasciwie.
Polimorfizm to rozneiz generics w Javie i templates w C++. Taki
polimorfizm nazywa sie "polimorfizmem parametrycznym"
W OO polimorfizm jest taki jak polimorfizm + w Pascalu: metoda moze
byc deklarowana wielokrotnie w ciagu klas tworzacych ciag
dziedziczenia; implementacja bedzie wybierana stosownei do
dynamicznego typu obiektu
Polimorfizm nic nie mowi o "zastepowaniu klas".
Tak na marginesie, interfejs nei okrecla calkowicie zachowanai modulu;
moduly o identycznych interfejsach nie musza byc identyczne
A.L.
Następne wpisy z tego wątku
- 20.02.14 04:27 A.L.
- 20.02.14 04:30 A.L.
- 20.02.14 07:42 toslaw
- 20.02.14 07:58 g...@g...com
- 20.02.14 08:27 g...@g...com
- 20.02.14 10:27 g...@g...com
- 20.02.14 10:30 firr
- 20.02.14 10:43 firr
- 20.02.14 11:00 firr
- 20.02.14 22:39 A.L.
- 20.02.14 22:43 A.L.
- 20.02.14 22:46 A.L.
- 20.02.14 22:47 A.L.
- 21.02.14 08:51 toslaw
- 21.02.14 09:48 Maciej Sobczak
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-05 Zielona GĂłra => Konsultant wdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-03-05 Białystok => Spedytor Międzynarodowy (handel ładunkami/prowadzenie
- 2025-03-05 Warszawa => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-03-05 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-05 Zielona Góra => Senior Field Sales (system ERP) <=
- 2025-03-05 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-05 Kraków => Business Development Manager - Network and Network Security
- 2025-03-05 Zaniepokojeni mieszkańcy
- 2025-03-05 Ile pieniędzy ma bank?
- 2025-03-05 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-05 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-03-05 Warszawa => Frontend Developer (Angular13+) <=
- 2025-03-05 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-05 Chiny-Kraków => Backend Developer (Node + Java) <=
- 2025-03-05 Warszawa => JavaScript / Node / Fullstack Developer <=