Junior — Middle
Məlumat strukturlarında irsi istifadə etmədən oxşar funksionallığı necə həyata keçirmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Məlumatların strukturlarında irsiyyət yerinə, kompozisiya və protokollar (interfeyslər) istifadə oluna bilər. Məsələn, Swift-də davranışı təsvir etmək üçün tez-tez protokollar istifadə olunur və konkret strukturlar bu protokolları həyata keçirir, bu da sərt irsiyyət hierarşiyasından qaçmağa imkan verir.
Həmçinin, bir struktur digərinə istinad edən delegasiya nümunəsindən istifadə etmək olar, burada bir struktur digərinin lazım olan funksionallığını həyata keçirir.
Swift-də protokol və kompozisiya ilə nümunə:
protocol Drawable {
func draw()
}
struct Circle: Drawable {
func draw() {
print("Dairə çəkilir")
}
}
struct Square: Drawable {
func draw() {
print("Kvadrat çəkilir")
}
}
struct Canvas {
var shape: Drawable
func render() {
shape.draw()
}
}
let circle = Circle()
let canvas = Canvas(shape: circle)
canvas.render() // Nəticə: Dairə çəkilir
Bu şəkildə, funksionallıq kompozisiya və protokollar vasitəsilə həyata keçirilir, irsiyyət vasitəsilə deyil.