Sobes.tech
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.