statnice:vyvoj:otazka21
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| statnice:vyvoj:otazka21 [21.05.2008 17:03] – xvalo07 | statnice:vyvoj:otazka21 [21.05.2008 22:41] (current) – otázka dokončena xvalo07 | ||
|---|---|---|---|
| Line 20: | Line 20: | ||
| * **ukrývání implementace** - tím, že jsou metody zapouzdřeny v objektu, lze měnit jejich implementaci bez dopadu na okolí, nebo třeba vytvořit třídy simulující určitou činnost. **Příklad: | * **ukrývání implementace** - tím, že jsou metody zapouzdřeny v objektu, lze měnit jejich implementaci bez dopadu na okolí, nebo třeba vytvořit třídy simulující určitou činnost. **Příklad: | ||
| * **komunikace objektů** - aby mohly objekty komunikovat musí na sebe mít referenci (ukazatel). I tak má přístup jen k rozhraní objektu, zbytek je díky zapouzdření a ukrytí implementace nedostupný. tedy Objekty zpřístupňují jen to, co je nezbytně nutné pro vzájemnou komunikaci. | * **komunikace objektů** - aby mohly objekty komunikovat musí na sebe mít referenci (ukazatel). I tak má přístup jen k rozhraní objektu, zbytek je díky zapouzdření a ukrytí implementace nedostupný. tedy Objekty zpřístupňují jen to, co je nezbytně nutné pro vzájemnou komunikaci. | ||
| - | * **dědičnost** - znovupoužitelnost na úrovni deklarace třídy. Tzv. dceřinná třída (nebo potomek) může dědit metody a atributy od své rodičovské třídy (předka). K tomu může přidat nové metody, nebo změnit metody od rodiče (překrytí, | + | * **dědičnost** - znovupoužitelnost na úrovni deklarace třídy. Tzv. dceřinná třída (nebo potomek) může dědit metody a atributy od své rodičovské třídy (předka). K tomu může přidat nové metody, nebo změnit metody od rodiče (překrytí, |
| * **polymorfismus** - různé třídy mají stejné metody, se stejnými parametry a stejným sémantickým smyslem, ovšem jinou implementací. Zjednodušuje a zpřehledňuje to pochopení a samotné programování. Například: | * **polymorfismus** - různé třídy mají stejné metody, se stejnými parametry a stejným sémantickým smyslem, ovšem jinou implementací. Zjednodušuje a zpřehledňuje to pochopení a samotné programování. Například: | ||
| ==== Další pojmy ==== | ==== Další pojmy ==== | ||
| * **Abstraktní metody** - volat metody potomka předkem. Předek sám metodu neimplementuje, | * **Abstraktní metody** - volat metody potomka předkem. Předek sám metodu neimplementuje, | ||
| - | * **Abstraktní třídy** - FIXME | + | * **Abstraktní třídy** - třída obsahující abstraktní metody (ne nutně všechny musí být abstraktní). od takové třídy nelze vytvořit instanci. |
| - | * **Rozhraní** - FIXME | + | * **Rozhraní** - Rozhraní zaručuje uživateli, že všechny třídy, které jej implementují, |
| - | * **Statické a dynamické metody a data** – statické jsou spustitelné nezávisle od existence instance metody, dynamické nikoliv – je třeba vytvořit instanci. Např. v Javě mohou být součástí jedné třídy obě, ale nemohou si vzájemně | + | * **Statické a dynamické metody a data** – statické jsou spustitelné nezávisle od existence instance metody, dynamické nikoliv – je třeba vytvořit instanci. Např. v Javě mohou být součástí jedné třídy obě, ale nemohou si vzájemně |
| * **Serializace objektů** – vyjadřuje princip spojení kódu s daty. Pokud je objekt serializovatelný, | * **Serializace objektů** – vyjadřuje princip spojení kódu s daty. Pokud je objekt serializovatelný, | ||
| Line 60: | Line 60: | ||
| ===== Praxe ===== | ===== Praxe ===== | ||
| - | FIXME | + | * **Rozhodněte se, zda bude nutné změnit metodiku podle OMG, nebo se naopak přizpůsobit.** |
| + | Náš zákazník, náš pán - asi je snazší změnit notaci diagramů, než předělat vlastní firmu na jinou metodiku (která ovlivňuje způsob myšlení, postupy, výstupy ...). otázka je také, zda bude UML kompatibilní s naší metodikou (jestli pomocí UML dokážu vyjádřit vše, co naše metodika žádá). Do budoucna zvážím studium UML. | ||
| + | * **Co sdělíte svému zákazníkovi? | ||
| + | Pokusím se ho přesvědčit, | ||
| + | * **Proč, podle vašeho názoru, společnost OMG nechce přiznat specifikaci jazyka UML metodický obsah a tvrdí, že to není nic víc, nežli specifikace jazyka? Je vůbec možné úplně oddělit jazyk od metodiky? | ||
| + | Protože metodik existuje velké množství, od různých skupin (firem, sdružení, univerzit), pro různé typy projektů a dost se od sebe liší. UML je především syntaxe diagramů, pomocí které lze modelovat cokoliv, třeba jen jeden diagram jedné konkrétní části systému - proč se kvůli tomu učit a omezovat nějakou konkrétní metodikou? Navíc se sešlo hodně společností a dalo jim dost práce se shodnout na jednotné notaci. Metodiky jsou o dost rozsáhlejší, | ||
statnice/vyvoj/otazka21.1211382220.txt.gz · Last modified: 21.05.2008 00:00 (external edit)
