Junior — Middle
Kādiem metodiem var izmantot līdzīgas funkcionalitātes īstenošanai bez mantošanas datu struktūrās?
sobes.tech AI
Atbilde no AI
Vietā, lai izmantotu mantošanu datu struktūrās, var izmantot kompozīciju un protokolus (interfeisus). Piemēram, Swift bieži izmanto protokolus, lai aprakstītu uzvedību, un konkrētas struktūras šos protokolus īsteno, kas ļauj izvairīties no stingras mantošanas hierarhijas.
Tāpat var izmantot deleģēšanas paraugu, kad viena struktūra satur atsauci uz citu, kas īsteno nepieciešamo funkcionalitāti.
Piemērs Swift ar protokola un kompozīcijas izmantošanu:
protocol Drawable {
func draw()
}
struct Circle: Drawable {
func draw() {
print("Zīmē riņķi")
}
}
struct Square: Drawable {
func draw() {
print("Zīmē kvadrātu")
}
}
struct Canvas {
var shape: Drawable
func render() {
shape.draw()
}
}
let circle = Circle()
let canvas = Canvas(shape: circle)
canvas.render() // Izvadīs: Zīmē riņķi
Tādējādi funkcionalitāte tiek īstenota caur kompozīciju un protokoliem, nevis caur mantošanu.