Junior — Middle
რა მნიშვნელობა აქვს ასოს 'L' ობიექტზე ორიენტირებულ პროგრამირების SOLID პრინციპებში?
sobes.tech AI
პასუხი AI-სგან
SOLID პრინციპებში "L" ასო წარმოადგენს ლისკოვის ჩანაცვლების პრინციპს (Liskov Substitution Principle, LSP).
ეს პრინციპი ამბობს, რომ ქვესაფარი ობიექტები უნდა იყოს ჩანაცვლებადი საწყის კლასის ობიექტებით, ისე რომ პროგრამის სისწორე არ დაირღვეს. სხვა სიტყვებით რომ ვთქვათ, თუ კლასი B მემკვიდრეობს კლასი A-ს, მაშინ B-ის ობიექტები უნდა იქცეოდნენ ისე, რომ მათ შეუძლიათ გამოიყენონ A-ის ობიექტების ნაცვლად, გაურკვეველი შეცდომების ან ქცევის ცვლილებების გარეშე.
LSP-ის დარღვევის მაგალითი:
class Bird {
func fly() {}
}
class Ostrich: Bird {
override func fly() {
fatalError("შხამიანი ფრინველი ვერ ფრინავს")
}
}
აქ, Ostrich მემკვიდრეობს Bird-ს, მაგრამ ვერ ახერხებს fly მეთოდის სწორად განხორციელებას, რაც არღვევს LSP-ს.
სწორი კლასების დიზაინი ეხმარება ამ პრინციპის დაცვას, და აუმჯობესებს კოდის სანდოობას და გაფართოებადობას.