Clean Code - Component Coupling

Stable Dependencies Principle

Als van een component meerdere componenten afhankelijk zijn, dan is dit een stabiel component. Een aanpassing op dit component heeft grote gevolgen voor de componenten die er van afhankelijk zijn.

Als een component afhankelijk is van alleen maar andere componenten dat is dit een instabiel component. Dit omdat geen andere componenten afhankelijk zijn van dit component.

Als je dus code hebt dat veel zal veranderen, plaats deze code dan in een instabiel component.

Een stabiel component mag alleen maar afhankelijkheden hebben met andere stabiele componenten. Als een stabiel component afhankelijk is van een instabiel component dan heeft een aanpassing in een instabiel component grote gevolgen op de componentstructuur.

De stabiliteit van een component is te berekenen:

1 - Tel het aantal componenten dat afhankelijk zijn van het component (= fan in);
2 - Tel het aantal componenten waarvan het component zelf afhankelijk is (= fan out).

Pas deze uitkomsten toe op de formule: I  = fan out / (fan out + fan in).

Een stabiel component mag vervolgens alleen afhankelijkheden hebben met andere componenten die een even grote I-waarde hebben of hoger.

Stable Abstractions Principle

Hoe stabieler een component is, hoe abstracter deze moet zijn. De mate van abstractie is te berekenen met de formule: A = het aantal abstracte classes gedeeld door het aantal classes. Voorbeeld: 10 classes, waarvan 2 interfaces en 3 abstract classes = 5 (aantal abstract -> interface + abstract) / 10 = 0.5.

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren