====== Objektově Orientovaného Programování ====== * **Zapouzdření** * **cohesion** (soudržnost) * Jak moc funkce/třída dělá jednu konkrétní věc * optimální je vysoká soudržnost, kdy funkce/třída dělá jednu konkrétní věc * kód je snadno testovatelný, rozšiřitelný * **coupling** (provázanost) * Jak moc kód jedné funkce/třídy závisí na ostatních funkcích/třídách * změny implementace jiných funkcí/tříd nevyžadují změnu ve funkci/třídě, která ji využívá * optimální je nízká provázanost, kdy funkce/třída nezávisí na implementačních detailech jiné * úplně bez provázanosti to nejde * [[https://zdrojak.cz/clanky/grasp-3-low-coupling/|více info]]