Efter att ha läst “Clean Code” lärde jag mig detta

Klasser

Ska vara liten

Den första regeln i klasserna är att de måste vara små. Den andra regeln är att de måste vara mindre än så. Låter bekant? Klasserna bör följa samma princip som funktioner – gör dem så små du kan.

Det finns dock en liten skillnad – klasser kan göra mer än en sak. De kommer förmodligen att göra mer än en sak för det mesta. Med detta sagt måste de följa principen om ett enda ansvar

Principen om ett enda ansvar

Klasserna bör ha ett ansvar, och inget mer än det. Det är här som separationen av oro är ett verkligt problem … som utvecklare måste vi se till att klasserna bara har ett ansvar för att skapa små och rena klasser.

Ansvar är en term som i detta sammanhang innebär en anledning att ändra. Det ska bara finnas en anledning till att klassen förändras. om flera skäl kan få klassen att förändras betyder det att klassen har för många ansvar. Detta är ett kortfattat sätt att se till att klassen har ett enda ansvar.

Sammanhållning

Hur väl är logiken i en klass “limmad” ihop och har anslutningspunkter i den? Hur väl implementeras metoderna med logiken och klassen och är de på rätt plats?

En bra indikator som kan hjälpa till att svara på dessa frågor är antalet instansvariabler i en klass. Helst skulle vi föredra att minska antalet instansvariabler och använda var och en av dem i klassens metoder. Det är sammanhållning i en klass.

Metoderna är starkt relaterade till klassen, de använder instansvariablerna och logiken odlas och används av alla metoder. Detta är en stark indikator på att alla metoder och problem finns på rätt plats.

”Strategin att hålla funktioner små och hålla parameterlistor korta kan ibland leda till en spridning av instans variabler som används av en delmängd av metoder. När detta händer betyder det nästan alltid att det finns minst en annan klass som försöker komma ur den större klassen. Du bör försöka separera variablerna och metoderna i två eller flera klasser så att de nya klasserna är mer sammanhängande ”

Pages: 1 2 3 4 5


Posted

in

,

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *