Junior — Middle
შეგიძლიათ მიაწოდოთ მაგალითი, როდესაც ინტერფეისების გაყოფა პროექტში გამართლებულია?
sobes.tech AI
პასუხი AI-სგან
ინტერფეისების გაყოფა სამართლიანია, როდესაც გაქვთ დიდი ინტერფეისი, რომელიც შეიცავს ბევრ მეთოდს, რომლებიც ყოველთვის საჭირო არაა ყველა მომხმარებლისთვის. მაგალითად, iOS პროექტში, შეგიძლიათ პროტოკოლი გაანაწილოთ რამდენიმე უფრო ვიწრო პროტოკოლად, რათა სხვადასხვა კლასმა მხოლოდ იმ მეთოდებს იმუშაონ, რომლებიც მათ ნამდვილად სჭირდებათ. ეს აუმჯობესებს კოდის წაკითხვადობას და ამარტივებს შენარჩუნებას.
მაგალითად, არსებობს MediaPlayable პროტოკოლი, რომელიც შეიცავს play(), pause(), stop(), record() მეთოდებს. თუ კლასი მხოლოდ გამართვისთვის არის პასუხისმგებელი, მას არ სჭირდება record()-ის რეალიზება. მაშინ, შეიძლება გაყოფა ორი პროტოკოლად:
protocol MediaPlayable {
func play()
func pause()
func stop()
}
protocol MediaRecordable {
func record()
}
ასე, კლასები რეალიზებენ მხოლოდ საჭირო ინტერფეისებს.