S.O.L.I.D. Glenn F. Henriksen ErgoGroup
 
 
 
 
 
 
DESIGN
 
 
Problemer:
Fastlåst
Gjenbruk vanskelig
Jobber rundt fremfor å fikse
Noen begrep:
 
 
 
 
Cohesion Samhørighet Etbl. 1976
Coupling Kobling Etbl. 1976
 
S O L I D
SRP OCP LSP ISP DIP
Prinsipper
Single Responsibility Principle Etbl. 1979
Single Responsibility Principle A class should have one, and only one, reason to change. A class should have one, and only one, reason to change. En klasse skal ha en, og kun en, grunn for endring
 
 
 
 
Open Closed Principle Etbl. 1988
Open Closed Principle You should be able to extend a classes behavior,  without modifying it. Man skal kunne utvide oppførselen til en klasse, uten å endre klassen.
To krav Utvide oppførselen Vi kan få modulen til å oppføre seg på nye og anderledes måter  Når applikasjonen endrer seg  Når vi må tilpasse oss krav i nye applikasjoner Uten å endre klassen Eksisterende kildekode skal ikke endres En klasse skal være stabil
 
 
 
Liskov Substitution Principle Etbl. 1988
Liskov Substitution Principle Derived classes must be substitutable for their base classes. Avledede klasser må kunne byttes ut med baseklassen
 
 
 
 
 
 
 
 
 
 
 
At a  er  b betyr ikke  at a og b  oppfører  seg likt
Interface Segregation Principle Etbl. 1995
Interface Segregation Principle Make fine grained interfaces that are client specific. Lag definerte grensesnitt som er klientspesifikke
Mange spesifikke grensesnitt er bedre enn ett generelt
 
 
 
 
 
Dependency Inversion Principle Etbl. 1995
Dependency Inversion Principle Depend on abstractions, not on concretions. Vær avhenging av det abstrakte, ikke det konkrete
 
 
 
Inversion of Control container (IoC)
 
 
 
 
 
 
Skriv kode som om han som skal vedlikeholde koden din er en voldelig psykopat og  vet hvor du bor

Solid