Junior — Middle
Кадом усулҳоро метавон барои иҷрои функсияи монанд бе истифодаи мерос дар структураҳои додаҳо истифода бурд?
sobes.tech AI
Ҷавоб аз AI
Дар ҷойи мерос дар структураҳои додаҳо, шумо метавонед composition ва protocols (интерфейсҳо) истифода баред. Масалан, дар Swift, аксар вақт protocols барои тавсифи рафтор истифода мешаванд, ва структураҳои мушаххас ин protocols-ро иҷро мекунанд, ки ин имкон медиҳад, ки аз hierarchy-и сахти меросӣ дурӣ ёбем.
Ҳамчунин, шумо метавонед pattern-и delegation-ро истифода баред, вақте ки як структура дорои истинод ба дигаре мебошад, ки функсионалро иҷро мекунад.
Масал дар Swift бо истифодаи protocol ва composition:
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() // Натиҷа: Рисуем дора
Инчунин, ин роҳ имкон медиҳад, ки функсионал тавассути composition ва protocols амалӣ шавад, на тавассути inheritance.