principles Flashcards
Hvad er en bean?
an instance of a class managed by the spring container
inversion of control
spring har en indbygget ioc container, der kan inistianisere objekter automatisk vha. dependency injection. “dont call us, we call u”
dependency injection
objekters afhængigheder ikke bliver skabt direkte i deres egne klasser, men i stedet leveret (injected) fra en ekstern kilde.
Spring opretter selv objekter
Objekterne får deres afhængigheder på oprettelsestidspunktet (typisk som parameter til konstruktøren) af en ekstern enhed.
-Opretter bean-instansen.
-Administrerer afhængigheder.
-Ødelægger bean’en, når applikationen lukker ned.
Dependency Inversion Principle(DIP)
Klasser på højt niveau, som implementerer kompleks logik, bør ikke påvirkes af ændringer i klassen på lavt niveau. I stedet bør klasser på højt niveau definere et interface som skal implementeres af klasser på lavere niveau.
Ses ved serviceklassen kun kender til interfacet, og ikke den konkrete implementering
Grasp - creator
Creator
Hvis en klasse har brug for en anden klasse, bør den, der har behovet, skabe den anden.
Information Expert
Information Expert
Hvis en klasse har de nødvendige oplysninger til at udføre en opgave, bør den have ansvaret for at gøre det.
Controller
Controller
Hvis noget skal reagere på brugerhandlinger eller eksterne hændelser, opret en controller-klasse til at håndtere det.
lav Kobling og Binding (cohesion)
Low Coupling: Hold klasser adskilte og undgå, at de afhænger for meget af hinanden. Det gør koden mere fleksibel.
ses ved serviceklassen (EmployeeService) kun kender til interfacet (IEmployeeRepository) og ikke til, hvordan interfacet faktisk er implementeret.
Single Responsibility
‘en klasse/funktion bør kun have et ansvar og dermed kun en grund til at ændre sig’
ses i serviceklasserne, de definerer forretningslogik og overlader databaseadgang til repository.
Interface seggregation principle (ISP)
Klienter bør ikke tvinges til at være afhængige af metoder i interfaces, som de ikke bruger. Grupper i stedet metoder og brug flere seperate interfaces.
ses ved vores små fokuserede interfaces
@ModelAttribute
Binder input data fra html formen til request parametre
Bean
an instance of a class managed by the spring container
Separation of Concerns (SoC)
hver part er ansvarlig for en separat bekymring, hvilket minimerer overlapningen af bekymringer så meget som muligt.
MVC-mønsteret er en klassisk implementering af SoC,