De fire søjler er Encapsulation, Abstraction, Inheritance og Polymorphism. Sammen beskriver de, hvordan OOP organiserer og genbrug kode.
De fire søjler er Encapsulation, Abstraction, Inheritance og Polymorphism. Sammen beskriver de, hvordan OOP organiserer og genbrug kode.
| Søjle | Kerneidé |
|---|
| Encapsulation | Pakk data + adfærd sammen; skjul intern tilstand bag et kontrolleret interface |
| Abstraction | Eksponér hvad et objekt gør, skjul hvordan det gør det |
| Inheritance | En subklasse genbrug og udvider en parent class |
| Polymorphism | Et interface, mange implementeringer valgt ved runtime |
abstract class Shape { // ABSTRACTION: "what", not "how"
abstract double area(); // each shape decides its own formula
}
class Circle extends Shape { // INHERITANCE: Circle is a Shape
private double r; // ENCAPSULATION: r is private
Circle(double r) { this.r = r; }
double area() { return Math.PI * r * r; } // POLYMORPHISM: own area()
}
class Square extends Shape {
private double s;
Square(double s) { this.s = s; }
double area() { return s * s; }
}
Shape shape = new Circle(2); // POLYMORPHISM in action:
System.out.println(shape.area()); // calls Circle.area() at runtime
Disse er værktøjer, ikke mål. At tvinge inheritance eller abstraction, hvor det ikke er nødvendigt, skaber kompleksitet. Grib fat i den søjle, der passer til problemet.
Disse fire ord er det delte ordforråd for OOP-design — interviews og code reviews forudsætter, at du kender dem.
Hver søjle mapper til en konkret fordel: encapsulation beskytter invarianter, abstraction reducerer det, du skal forstå, inheritance og polymorphism muliggør genbrug og udvidelse.