-
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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-30 Gdańsk => Software .Net Developer <=
- 2024-12-30 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-12-30 Białystok => Programista Full Stack (.Net Core) <=
- 2024-12-30 Moduł BT BLE 5.0
- 2024-12-30 Łódź => Application Security Engineer <=
- 2024-12-30 Lublin => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-30 Nowy Outlander PHEV w PL
- 2024-12-30 Warszawa => Key Account Manager <=
- 2024-12-30 Katowice => Key Account Manager (ERP) <=
- 2024-12-28 Śmiechu KOOOOOOPA ;-)
- 2024-12-29 Pomiar amplitudy w zegarku mechanicznym
- 2024-12-28 Antyradar
- 2024-12-28 Deweloper przegral w sadzie musi zwrócic pieniądze Posypia sie kolejne pozwy?
- 2024-12-28 Warszawa => Full Stack .Net Engineer <=
- 2024-12-28 Warszawa => Sales Assistant <=