Sammanhållning och koppling både mäta förhållandet mellan delar av datorprogram . Sammanhållning mäter hur komponenterna i en mjukvarumodul eller en klass av mjukvaruobjekt relaterar till varandra . Koppling mäter förhållandet mellan olika klasser och moduler . God planering ökar sammanhållningen och minskar storleken på kopplingen . Sammanhållning
en klass eller modul har hög sammanhållning om alla ansvar , uppgifter och metoder som den innehåller är nära besläktade . Om ett projekt - schemaläggning modul innehåller endast metoder eller funktioner för schemaläggning , det är starkt sammanhållen , om den också innehåller organisationsscheman och en kunddatabas , är det mindre sammanhängande . För att mäta sammanhållningen , beräkna antalet delade fält som metoder - subrutiner - i en klass måste komma och jämföra det med det antal orelaterade fält de använder . Ju större antal vanliga fält , desto större sammanhållning
Betydelse
p Om en modul har att hantera flera operationer - . Säkerhet , infrastruktur , nätverk regler - blir det svårare att arbeta med än om allt i modulen fokuserar på ett enda syfte . Med en låg sammanhållning modell , kan du behöva göra flera orelaterade ändringar eftersom varje del behöver en annan fix eller patch . Omvänt , om relaterade funktioner är uppdelade i flera filer i stället för en enda sammanhängande filer , kan du behöva göra upprepade identiska ändringar av varje fil i stället för en enda fix till en enda fil .
koppling
När din programvara design använder tät koppling mellan klasser eller delsystem , som innebär att de är sammankopplade : System A inte kan utföra sitt jobb utan att veta detaljer om vad System B gör , och en byta till B innebär A måste förändras. Med lös koppling , kan du ändra System En lättare . Det är också svårare att studera koden för A om du inte kan förstå det utan att analysera koden för B och deras relation .
Effektivitet
Låg koppling gör kodning mer effektivt eftersom du kan återanvända mer kod : Om system A och system B inte är beroende av varandra , kan du kopiera koden för en av dem i ett annat program utan svårighet . Programvara som innehåller dubbla kodning för dubbla funktioner är ytterligare ett tecken på ineffektivitet . Du är ofta bättre om du skriva om programmet för att eliminera överlappande funktioner , sedan tilldela funktionen till en egen sammanhållen modul . Den lägre nivån av kopplingen , de enklare sådana genomgripande förändringar blir .