ოთხი სვეტი არის Encapsulation, Abstraction, Inheritance და Polymorphism. ერთად ისინი აღწერენ, თუ როგორ ორგანიზებს OOP და ხელახლა იყენებს კოდს.
ოთხი სვეტი არის Encapsulation, Abstraction, Inheritance და Polymorphism. ერთად ისინი აღწერენ, თუ როგორ ორგანიზებს OOP და ხელახლა იყენებს კოდს.
| Pillar | ძირითადი იდეა |
|---|
| Encapsulation | მონაცემების + ქცევის შეკრება; შინაგანი მდგომარეობის დამალვა კონტროლირებული ინტერფეისის უკან |
| Abstraction | გამოავლინე რა აკეთებს ობიექტი, დამალე როგორ აკეთებს |
| Inheritance | ქვეკლასი გამოიყენებს და აფართოებს მშობელი კლასს |
| Polymorphism | ერთი ინტერფეისი, მრავალი რეალიზაცია, რომელიც უშუალოდ არჩეულია |
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
ეს არის ხელსაწყოები, არა მიზნები. მემკვიდრეობის ან აბსტრაქციის აკრძალვა, სადაც ის არ არის საჭირო, ქმნის სირთულეს. აირჩიე სვეტი, რომელიც პრობლემას შეესაბამება.
ეს ოთხი სიტყვა OOP დიზაინის საერთო ლექსიკაა — ინტერვიუები და კოდის მიმოხილვები ვარაუდობენ, რომ თქვენ მათ იცნობთ.
ყოველი სვეტი კონკრეტულ სარგებელს კარტოგრაფირებს: ინკაფსულაცია იცავს ინვარიანტებს, აბსტრაქცია ამცირებს ის, რაც გასაგებია, მემკვიდრეობა და პოლიმორფიზმი ხელმისაწვდომელი სიტყვებით კოდის ხელახლა გამოყენებას და გაფართოებას.