Skip to main content

Jaký je princip jediné odpovědnosti?

V počítačovém programování a designu je princip jediné odpovědnosti koncept, který obhajuje názor, že jakákoli třída v programu by měla vykonávat pouze jednu funkci ve větší aplikaci.Tato myšlenka částečně propaguje některé z ideálů objektově orientovaného programování, jako je zapouzdření, protože celá třída bude zaměřena na vykonávání jediné odpovědnosti a bude se jen málo spoléhat na vnější třídy.Současně je to poněkud protikladný vůči některým konceptům raného objektového programování, protože funkce jediného objektu je od dat odložena, což znamená, že je třeba postavit mnoho objektů v kombinaci, aby bylo možné udržovatNěkterá centrální data.Princip jediné odpovědnosti je základem pro typ modelu designu známý jako návrh založený na odpovědnosti.Některé principy návrhu by sluchátko považovaly za jediný objekt, který zpracovává vstup z telefonní linky i přenos výstupu z reproduktoru.Podle modelu s jedním odpovědností, ve kterém by jeden objekt měl mít pouze jednu odpovědnost, pak by sluchátko se skládalo z několika samostatných objektů, které každý provedl jedinou funkci, jako je pouze přijímání vstupu z telefonní linky, nebo pouze vydávání dat prostřednictvím prostřednictvím prostřednictvímsluchátko.V příkladu sluchátka může být vstup z telefonní linky nebo způsob, jakým je signál vydán uživateli, změnit se, aniž by to ovlivnilo sousední třídy, pokud dodržují stejnou smlouvu na propojení.Kromě toho může být opětovná použitelnost určitých složek velmi vysoká, protože každá třída je plně zapouzdřena a spoléhá se velmi málo, pokud vůbec, na okolních objektech, místo toho se zaměřuje na svou jednu odpovědnost.velké množství tříd a objektů, které všechny pracují na stejných datech.To může znamenat velké množství režijních nákladů a komplikovaný proces návrhu.Může také ztěžovat ladění velkého programu, protože jedna část programu by se mohla skládat z tisíců malých souborů třídy.Data jsou oddělena pro účely návrhu.I když to vede k určité svobodě, zapouzdření a modularitě v designu, může také generovat řadu středních vzorů a vzorů, které musí být použity k usnadnění řady tříd, které se pokoušejí interagovat s daty najednou.Na druhé straně, pokud jsou data objektu a metody použité k manipulaci se všemi spojenými dohromady v jediném objektu s více odpovědností, pak může být kód být těžší modifikovat jako systémové měřítko, měnit nebo stát složitější.