Rozdíl mezi spojením a soudržností

Rozdíl mezi spojením a soudržností
Rozdíl mezi spojením a soudržností

Video: Rozdíl mezi spojením a soudržností

Video: Rozdíl mezi spojením a soudržností
Video: Cookie vs Session vs Local Storage vs Session Storage in Web Development 🔥🔥 2024, Červenec
Anonim

Spojka vs soudržnost

Coupling a koheze jsou dva koncepty, které se vyskytují v Javě (a všech ostatních objektově orientovaných jazycích). Coupling měří, jak moc je každý z programových modulů závislý na ostatních programových modulech. Koheze měří, jak silně spolu každá z funkcí v rámci modulu souvisí. Ve skutečnosti má každý objektově orientovaný jazyk (včetně Javy) dva hlavní cíle, a to zvýšit soudržnost a zároveň snížit vazbu, aby bylo možné vyvinout nejúčinnější programy. Tyto dvě metriky softwarového inženýrství vyvinul Larry Constantine za účelem snížení nákladů na úpravy a údržbu softwaru.

Co je soudržnost?

Koheze měří, jak silně spolu každá z funkcí souvisí v rámci programového modulu. Dobře strukturované třídy vedou k vysoce soudržným programům. Pokud určitá třída vykonává sadu vysoce souvisejících funkcí, říká se, že tato třída je soudržná. Na druhou stranu, pokud třída provádí spoustu zcela nesouvisejících funkcí, znamená to, že třída není vůbec soudržná. Je důležité pochopit, že neexistence soudržnosti neznamená, že celková aplikace nemá požadovanou funkčnost. Jde jen o to, že bez soudržnosti bude velmi obtížné spravovat funkce, protože budou rozptýleny na mnoha nesprávných místech, jak se složitost aplikace v průběhu času zvyšuje. Udržování, úpravy a rozšiřování chování roztroušených po celém kódu je velmi únavné i pro ty nejzkušenější programátory.

Co je spojka?

Coupling měří, jak moc je každý z programových modulů závislý na ostatních programových modulech. K interakcím mezi dvěma objekty dochází, protože existuje vazba. Volně propojené programy mají vysokou flexibilitu a rozšiřitelnost. Silná vazba není nikdy dobrá, protože jeden objekt může být vysoce závislý na jiném objektu. To je noční můra, když je kód modifikován, protože vysoká vazba znamená, že programátoři potřebují pracovat na několika místech kódu, a to i pro jedinou modifikaci chování. Silná vazba vždy vede k programům s nízkou flexibilitou a menší škálovatelností/rozšiřitelností. V programovacích jazycích, jako je Java, je však úplné vyhnout se propojení nemožné. Doporučuje se však, aby programátoři vynaložili maximální úsilí na to, aby spojení co nejvíce zredukovali. Je také možné mít nějaké propojení, které pomůže objektům vzájemně interagovat, aniž by to narušilo jejich škálovatelnost a flexibilitu.

Jaký je rozdíl mezi spojením a soudržností?

I když se spojení a soudržnost zabývají kvalitou modulu v softwarovém inženýrství, jedná se o zcela odlišné koncepty. Cohesion hovoří o tom, jak moc spolu funkce v rámci modulu souvisí, zatímco spojení se zabývá tím, jak moc je jeden modul závislý na ostatních programových modulech v rámci celé aplikace. Abychom měli nejkvalitnější software, koheze a propojení by měly dosahovat na dva opačné konce svého spektra. Jinými slovy, volná vazba a silná soudržnost poskytuje nejlepší software. Soukromá pole, neveřejné třídy a soukromé metody poskytují volné spojení, přičemž jsou všichni členové ve třídě viditelní a výchozí viditelnost balíčku poskytuje vysokou soudržnost.

Doporučuje: