Junior — Middle
Мәліметтер структураларында мурас алуу колдонбостон окшош функционалдуулукту ишке ашыруунун кандай ыкмалары бар?
sobes.tech AI
AIден жооп
Маалыматтардын түзүмдөрүндө мурас алуу ордуна композиция жана протоколдорду (интерфейстерди) колдонсо болот. Мисалы, Swiftте көбүнчө протоколдорду жүрүм-турумду сүрөттөө үчүн колдонушат, жана так түзүмдөр бул протоколдорду ишке ашырат, бул катуу мурас хиерархиясынан качууга мүмкүндүк берет.
Ошондой эле, делегирлөө үлгүсүн колдонсо болот, анда бир структура башка структурага шилтемени камтыйт жана керектүү функционалдуулукту ишке ашырат.
Swiftте протокол жана композицияны колдонуу менен мисал:
protocol Drawable {
func draw()
}
struct Circle: Drawable {
func draw() {
print("Дөңгөч тартуу")
}
}
struct Square: Drawable {
func draw() {
print("Төрт бурч тартуу")
}
}
struct Canvas {
var shape: Drawable
func render() {
shape.draw()
}
}
let circle = Circle()
let canvas = Canvas(shape: circle)
canvas.render() // Натыйжа: Дөңгөч тартуу
Мындай жол менен, функционалдуулук композиция жана протоколдор аркылуу ишке ашырылат, мурас алуу аркылуу эмес.