Oversigt over SOLID-principperne
Få en introduktion til de fem SOLID-principper: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation og Dependency Inversion.
Oversigt over SOLID-principperne er en gratis Ren arkitektur og designmønstre i praksis-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ren arkitektur og designmønstre i praksis, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ren arkitektur og designmønstre i praksis-kurset indeholder 4 lektioner i alt.
Hvad er SOLID-principperne?
SOLID-principperne er fem retningslinjer for softwaredesign, der gør software nem at vedligeholde, forstå og udvide. Se dem som en vej til renere kode.
Hvorfor er SOLID vigtigt?
Når du anvender SOLID, får du kode, der er nemmere at forstå, enklere at teste, mere fleksibel at ændre og bedre egnet til samarbejde. Det er grundlaget for godt objektorienteret design.
S: Princippet om ét ansvar (SRP)
Princippet om ét ansvar: En klasse bør kun have én grund til at blive ændret. Bland ikke beregning af data sammen med lagring af data – skil de to ansvarsområder ad.
SRP i praksis: Enkel rapport
Denne SimpleReport følger SRP: Dens eneste opgave er at generere rapportindhold. Udskrivning og lagring er andres ansvar.
public class SimpleReport {
private String content;
public SimpleReport(String content) {
this.content = content;
}
// This class's single responsibility is to generate/represent the report content
public String generateReportContent() {
return "Report: " + content;
}
public static void main(String[] args) {
SimpleReport report = new SimpleReport("Sales Data for Q1");
System.out.println(report.generateReportContent());
}
}O: Princippet om åben/lukket (OCP)
Princippet om åben/lukket: Software bør være åben for udvidelse, men lukket for ændringer. Tilføj ny adfærd uden at redigere fungerende kode.
OCP i praksis: Fleksible hilsner
Her kan en ny type hilsen tilføjes uden at ændre Greeter-interfacet eller eksisterende klasser – du udvider adfærden i stedet for at ændre den. Det er OCP.
interface Greeter {
String greet();
}
class EnglishGreeter implements Greeter {
@Override
public String greet() {
return "Hello!";
}
}
class SpanishGreeter implements Greeter {
@Override
public String greet() {
return "¡Hola!";
}
}
public class OCPDemo {
public static void main(String[] args) {
Greeter english = new EnglishGreeter();
Greeter spanish = new SpanishGreeter();
System.out.println(english.greet());
System.out.println(spanish.greet());
}
}L: Liskovs substitutionsprincip (LSP)
Liskovs substitutionsprincip: En underklasse skal kunne bruges alle steder, hvor dens overordnede klasse forventes, uden at programmet går i stykker. Undertypen overholder kontrakten.
LSP i praksis: Figurer
Enhver funktion, der modtager en Shape, håndterer både Rectangle og Circle korrekt – de overholder kontrakten. Det er LSP i praksis.
interface Shape {
double getArea();
}
class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
public class LSPDemo {
public static void printArea(Shape shape) {
System.out.println("Area: " + shape.getArea());
}
public static void main(String[] args) {
Shape myRectangle = new Rectangle(5, 4);
Shape myCircle = new Circle(3);
printArea(myRectangle);
printArea(myCircle);
}
}I: Princippet om interfaceopdeling (ISP)
Princippet om interfaceopdeling: Tving ikke klienter til at afhænge af metoder, de ikke bruger. Foretræk mange små, fokuserede interfaces frem for ét stort.
D: Princippet om afhængighedsinvertering (DIP)
Princippet om afhængighedsinvertering: Moduler på højt og lavt niveau bør begge afhænge af abstraktioner, ikke konkrete detaljer. Sådan opnår du løs kobling.
Tjek din forståelse
Hvilke af følgende udsagn beskriver korrekt fordelene ved at anvende SOLID-principperne?
Opsummering: Kraften i SOLID
Du har nu mødt alle fem SOLID-principper – ét ansvar, åben/lukket, Liskov, interfaceopdeling og afhængighedsinvertering – værktøjskassen til tilpasningsdygtig software.
Lær Ren arkitektur og designmønstre i praksis med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Oversigt over SOLID-principperne” gratis?
Ja — hele teksten til “Oversigt over SOLID-principperne” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ren arkitektur og designmønstre i praksis-kurset, skal du opgradere til CoddyKit PRO. Ren arkitektur og designmønstre i praksis-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Oversigt over SOLID-principperne”?
Få en introduktion til de fem SOLID-principper: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation og Dependency Inversion. Du øver dig i Ren arkitektur og designmønstre i praksis med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Ren arkitektur og designmønstre i praksis?
Der kræves ingen tidligere erfaring. Ren arkitektur og designmønstre i praksis på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Oversigt over SOLID-principperne”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Ren arkitektur og designmønstre i praksis-lektion?
Ja. Alle Ren arkitektur og designmønstre i praksis-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til Clean Code
- Oversigt over SOLID-principperne
- Værdien af godt design
- Sammenhæng, kobling og adskillelse af ansvar