Keturi stulpai yra Encapsulation, Abstraction, Inheritance ir Polymorphism. Kartu jie aprašo, kaip OOP organizuoja ir pakartotinai naudoja kodą.
Keturi stulpai yra Encapsulation, Abstraction, Inheritance ir Polymorphism. Kartu jie aprašo, kaip OOP organizuoja ir pakartotinai naudoja kodą.
| Pillar | Pagrindinė idėja |
|---|
| Encapsulation | Sujunkite duomenis + elgesį; paslėpkite vidinę būseną už kontroliuojamo sąsajo |
| Abstraction | Paskelbkite, ką daro objektas, paslėpkite, kaip jis tai daro |
| Inheritance | Subklasė pakartotinai naudoja ir praplečia tėvinę klasę |
| Polymorphism | Vienas sąsaja, daug realizacijų, pasirinktų vykdymo metu |
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
Tai yra įrankiai, ne tikslai. Priverstinis paveldėjimas arba abstrakcija, kur ji nereikalinga, sukuria sudėtingumą. Pasirinkite stulpą, kuris tinka jūsų problemai.
Šie keturi žodžiai yra bendras OOP projektavimo žodynas — pokalbiai ir kodo peržiūros daro prielaidą, kad juos žinote.
Kiekvienas stulpas atitinka konkretų privalumą: inkapsuliacija saugo invariantus, abstrakcija sumažina tai, ką turite suprasti, paveldėjimas ir polimorfizmas leidžia pakartotinai naudoti ir išplėsti.