|
|
Kapitola vysvětluje základní princip - myšlenku posílání zpráv objektu.
Při vysvětlování základů OOP se mnohdy klade důraz na základní tři vlastnosti OOP:
· zapouzdření
· dědičnost
· polymorfismus
Ano, to je sice teoreticky „školometská“ pravda, ale pro pochopení základních principů OOP je třeba se seznámit hlavně s tím, jakou mají objekty strukturu a jak vlastně fungují
K zavedení tohoto axiomu si půjčím klasickou definici objektu, jejíž podstatu vystihuje citát Alan Kaye (tvůrce jazyka Smalltalk): „The big idea is messaging“. Každý objektově orientovaný jazyk tuto myšlenku ve své technologii nějak zavádí, tedy je to jakýsi obecný princip pro objekty, jak by měly vypadat.
Struktura jednoho objektu v „čistém“ OOP
Objekt v programu (zdůrazňuji jeden objekt, který je nějak umístěn v paměti počítače a je připraven k použití, zatím není řeč o třídě!) je v tomto pojetí uzavřenou strukturou, do které „není zvenku vidět“, tj. okolní programy při pokusu o zásah nebo čtení z vnitřní struktury objektu selhávají. Objekt ve svém neviditelném „privátním“ vnitřku obsahuje dvě části: tzv. vnitřní paměť objektu (dává mu schopnost „něco si pamatovat“) a tzv. vnitřní metody objektu (dává mu schopnost „něco dělat“). Obě dvě tyto vnitřní části objektu (tj. vnitřní paměť a vnitřní metody) nejsou zvenku viditelné a nedají se z okolí „napřímo“ použít. Navzájem vůči sobě jsou však silně přátelské: Jakmile se nějak (zatím nevíme jak) spustí chování objektu jako jeho vnitřní metoda, tak ta má v dosahu a vidí velmi dobře vnitřní paměť objektu a může ji měnit.
Celý mechanismus skrytí vnitřku objektu znázorňuje tato animace:
Je zřejmé, že pokud bychom někomu dodali nějaký takový objekt popsaný v předešlém bodě, nedal by se použít, protože okolní program by jej prostě neviděl. Takováto „zvenku neviditelná struktura“ by nám samozřejmě byla na nic. Ke spolupráci okolí s objektem slouží další část objektu tzv. protokol zpráv, který umožňuje okolí poslat zprávu a tím vyvolat jeho činnost. Protokol zpráv pracuje jako převodník (poznámka: převodník převádí něco na něco). V objektovém programování objekt může v běhu programu přijímat zprávy od okolí. Zatím ještě nevíme, jak se tak činí konkrétně v C#, to si ukážeme později. Důležité je, že v protokolu zpráv jsou ke zprávám přiřazeny vnitřní metody a to tak, že k jedné zprávě, kterou objekt může přijmout, je přiřazena jedna vnitřní metoda. Okolí pošle objektu zprávu, ten si ji najde ve svém protokolu zpráv a tam zjistí, která vnitřní metoda je k této zprávě přiřazena a tu spustí.
Mechanismus použití objektu tedy funguje takto:
Tento mechanismus si můžeme zobrazit pomocí další animace:
(autor spravuje web Server objektových technologií)
skvele animacie ![]()
díky, jenom času kdyby bylo více ![]()
OOP, UML, OA & OD, návrh IS využívá WordPress MU a běží na Blog.zive.cz. Vytvořte si svůj vlastní blog
Sledování přes RSS: články
a komentáře
Partnerská sekce pro IT profesionály:
Microsoft TechNet/MSDN