Čtyři pilíře jsou Encapsulation, Abstraction, Inheritance a Polymorphism. Dohromady popisují, jak OOP organizuje a znovupoužívá kód.
| Pilíř | Základní idea |
|---|
| Encapsulation | Kombinovat data + chování; skrýt vnitřní stav za kontrolovaným rozhraním |
| Abstraction | Odkrýt co objekt dělá, skrýt jak to dělá |
| Inheritance | Podtřída znovupoužívá a rozšiřuje nadřazenou třídu |
| Polymorphism | Jedno rozhraní, mnoho implementací vybraných za běhu |
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
Toto jsou nástroje, ne cíle. Vynucování dědičnosti nebo abstrakce, kde nejsou potřebné, vytváří složitost. Sáhni po pilíři, který se hodí k problému.
Tyto čtyři slova jsou sdíleným slovníkem designu OOP — pohovory a code reviews předpokládají, že je znáš.
Každý pilíř se mapuje na konkrétní benefit: encapsulation chrání invarianty, abstraction snižuje, co musíš chápat, inheritance a polymorphism umožňují znovupoužití a rozšiřitelnost.