Verschil tussen koppeling en cohesie

Anonim

Koppeling versus Cohesie

Koppeling en cohesie zijn twee concepten gevonden in Java (en alle andere object georiënteerde talen). Koppeling meet hoeveel van elk van de programmamodules afhankelijk is van de andere programmamodules. Cohesie meet hoe sterk elk van de functies in een module verband houdt. Eigenlijk heeft elke objectgerichte taal (inclusief Java) de twee hoofddoelstellingen om tegelijkertijd meer cohesie te krijgen en de koppeling tegelijkertijd te verminderen om de meest efficiënte programma's te ontwikkelen. Deze twee software engineering statistieken werden ontwikkeld door Larry Constantine om de kosten van het aanpassen en onderhouden van software te verminderen.

Wat is Cohesie?

Cohesiemaatregelen bepalen hoe sterk elk van de functies in een programmamodule verband houdt. Goed gestructureerde lessen leiden tot zeer cohesieve programma's. Als een bepaalde klas een reeks zeer gerelateerde functies uitvoert, wordt deze klasse gezamenlijk gezegd. Aan de andere kant, als een klas een heleboel volledig ongebonden functionaliteiten uitvoert, betekent dat dat de klas helemaal niet samenhangt. Het is belangrijk te begrijpen dat het niet hebben van cohesie betekent niet dat de algemene applicatie niet over de vereiste functionaliteit beschikt. Het is gewoon dat zonder cohesie, het zal zeer moeilijk zijn om de functionaliteit te ontwijken omdat ze op veel verkeerde plaatsen verstrooid worden, omdat de complexiteit van de applicatie mettertijd toeneemt. Het handhaven, aanpassen en uitbreiden van gedrag verspreid over de code is erg vervelend, zelfs voor de meest ervaren programmeurs.

Wat is koppeling?

Koppeling meet hoeveel programma-modules afhankelijk zijn van de andere programmamodules. Interacties tussen twee objecten ontstaan ​​omdat er koppeling is. Loos-gekoppelde programma's hebben een hoge flexibiliteit en extensibiliteit. Sterke koppeling is nooit goed omdat een object sterk afhankelijk kan zijn van een ander object. Dit is een nachtmerrie wanneer de code is aangepast, omdat hoge koppeling betekent dat de programmeurs moeten werken op verschillende plaatsen van code voor zelfs een enkele gedragsmodificatie. Sterke koppeling leidt altijd tot programma's met lage flexibiliteit en minder schaalbaarheid / uitbreidbaarheid. In programmeringstalen zoals Java is het echter absoluut niet mogelijk om koppeling te vermijden. Maar het wordt aanbevolen dat de programmeurs hun best doen om de koppeling zo veel mogelijk te verminderen. Het is ook mogelijk om een ​​koppeling te hebben om objecten met elkaar te interageren zonder de schaalbaarheid en flexibiliteit ervan te belemmeren.

Wat is het verschil tussen Koppeling en Cohesie?

Hoewel koppeling en cohesie de kwaliteit van een module in software engineering betreffen, zijn ze geheel andere concepten.Cohesie spreekt over de mate waarin de functionaliteit met elkaar in de module verband houdt, terwijl koppeling behandelt hoeveel één module afhankelijk is van de andere programmamodules binnen de gehele applicatie. Om de beste kwaliteitssoftware te hebben, moeten cohesie en koppeling de twee tegenover elkaar liggende uiteinden van hun spectrum bereiken. Met andere woorden, loskoppeling en sterke cohesie biedt de beste software. Privévelden, niet-openbare lessen en privé-methoden bieden loskoppeling, terwijl alle leden zichtbaar zijn in de klas en een pakket hebben als de standaard zichtbaarheid zorgt voor een hoge cohesie.