Programovanie

Návrh zmeny: Spojenie a súdržnosť v objektovo orientovaných systémoch

Spojenie a súdržnosť sú dva často nesprávne chápané pojmy v softvérovom inžinierstve. Toto sú výrazy, ktoré sa používajú na označenie kvalitatívnej analýzy modularity v systéme a pomáhajú nám identifikovať a merať návrhovú zložitosť objektovo orientovaných systémov.

Na vytvorenie systémov, ktoré sú škálovateľné, zvládnuteľné a dajú sa časom rozšíriť, je však nevyhnutná dobrá znalosť oboch. V tomto príspevku budem diskutovať o oboch; V budúcich príspevkoch k tejto téme uvediem príklady kódov.

Ako sa líši súdržnosť a väzba? Ako súvisia koncepty súdržnosti a prepojenia s dobrými alebo zlými návrhmi softvéru? Predtým, ako preskúmame kohéziu a väzbu a ako ovplyvňujú softvérové ​​návrhy, poďme pochopiť, čo je každý z týchto konceptov a ich typy.

Spojka

Prepojenie možno definovať ako stupeň vzájomnej závislosti, ktorá existuje medzi softvérovými modulmi a ako úzko sú navzájom prepojené. V podstate spojenie naznačuje silu vzájomného prepojenia medzi softvérovými modulmi. Keď je toto spojenie vysoké, môžeme predpokladať, že softvérové ​​moduly sú vzájomne závislé, t. J. Bez druhého nemôžu fungovať. Existuje niekoľko rozmerov spojky:

  • Spojenie obsahu - toto je typ spojenia, v ktorom môže konkrétny modul získať prístup alebo upraviť obsah ktoréhokoľvek iného modulu. V zásade platí, že keď komponent odovzdáva parametre na riadenie činnosti niektorého iného komponentu, existuje medzi týmito dvoma komponentmi kontrolná väzba.
  • Spoločná väzba - toto je typ väzby, v ktorej máte viac modulov, ktoré majú prístup k zdieľaným globálnym údajom
  • Spojenie známok - toto je typ spojenia, pri ktorom sa dátová štruktúra používa na prenos informácií z jedného komponentu v systéme do druhého
  • Riadiaca spojka - ide o typ spojky, pri ktorej jeden modul môže meniť priebeh vykonávania iného modulu
  • Prepojenie údajov - pri tomto type prepojenia dva moduly interagujú výmenou alebo odovzdávaním údajov ako parametra

Súdržnosť

Súdržnosť označuje úroveň vzájomnej závislosti medzi prvkami softvérového modulu. Inými slovami, súdržnosť je mierou miery, do akej zodpovednosti jedného modulu alebo komponentu tvoria zmysluplnú jednotku. Súdržnosť je týchto typov:

  • Spoločná náhodná súdržnosť - toto je neplánovaná náhodná súdržnosť, ktorá môže byť výsledkom rozdelenia modulu na menšie moduly.
  • Logická súdržnosť - jedná sa o typ súdržnosti, pri ktorom je do jedného komponentu umiestnených viac logicky súvisiacich funkcií alebo dátových prvkov
  • Časová súdržnosť - ide o typ súdržnosti, pri ktorom sú prvky modulu zoskupené spôsobom, v ktorom sú spracované v rovnakom časovom okamihu. Príkladom môže byť komponent, ktorý sa používa na inicializáciu množiny objektov.
  • Procedurálna súdržnosť - jedná sa o typ súdržnosti, pri ktorom sú funkcie v komponente zoskupené tak, aby umožňovali ich postupné vykonávanie a zaistili ich procedurálnu súdržnosť.
  • Komunikačná súdržnosť - pri tomto type súdržnosti sú prvky modulu logicky zoskupené tak, že sa vykonávajú postupne a pracujú na rovnakých dátach
  • Sekvenčná súdržnosť - pri tomto type súdržnosti sú prvky modulu zoskupené takým spôsobom, že výstup jedného z nich sa stane vstupom ďalšieho - všetky sa vykonávajú postupne. V podstate, ak je výstup jednej časti súčasti vstupom druhej, hovoríme, že súčiastka má postupnú súdržnosť.
  • Funkčná súdržnosť - toto je najlepší a najpreferovanejší typ súdržnosti, pri ktorom je stupeň súdržnosti najvyšší. V tomto type súdržnosti sú prvky modulu funkčne zoskupené do logickej jednotky a spolupracujú ako logická jednotka - to tiež podporuje flexibilitu a opätovné použitie.

Najlepšie postupy

Tesné spojenie zvyšuje náklady na údržbu, pretože je ťažké a zmeny jedného komponentu by ovplyvnili všetky ostatné komponenty, ktoré sú k nemu pripojené. Takže refaktoring kódu sa stáva ťažkým, pretože by ste museli refaktorovať všetky ostatné komponenty v pripojenom reťazci, aby sa funkčnosť nerozbila. Tento proces je ťažkopádny a vyžaduje veľa zdĺhavého úsilia a času.

Mali by ste navrhnúť triedy, ktoré obsahujú menší počet inštančných premenných, t. J. Dizajn vašej triedy je „dobrý“, ak obsahuje malý počet inštančných premenných. V ideálnom prípade by každá z metód vo vašej triede mala manipulovať s jednou alebo viacerými z týchto premenných inštancie. Teoreticky je trieda maximálne súdržná, ak je každá z inštančných premenných triedy použitá alebo manipulovaná každou z metód tejto triedy. Keď je súdržnosť v triede vysoká, metódy a dátové členy triedy sú vzájomne závislé a spolupracujú ako jedna logická jednotka. V skutočnosti však nie je možné navrhnúť také triedy, alebo by som skôr povedal, že sa neodporúča navrhovať triedy, ktoré sú maximálne súdržné.

$config[zx-auto] not found$config[zx-overlay] not found