Middle
Декоратор эмне? Decorator паттерни жөнүндө айтып бер
sobes.tech AI
AIден жооп
Декоратор — бул структуралык дизайн шаблону, ал объекттерге динамикалык түрдө жаңы функцияларды кошууга мүмкүндүк берет, аларды башка декоратор объектилерине ороп, түпкү кодду өзгөртпөстөн.
Декоратор шаблону, объекттин жүрүм-турумун кеңейтүү керек болгондо, көптөгөн подкласс түзүүдөн сактайт.
Go тилиндеги мисал:
package main
import "fmt"
type Notifier interface {
Notify(message string)
}
type EmailNotifier struct {}
func (e *EmailNotifier) Notify(message string) {
fmt.Println("Электрондук почта билдирүүсү:", message)
}
type SMSDecorator struct {
wrapped Notifier
}
func (s *SMSDecorator) Notify(message string) {
s.wrapped.Notify(message) // негизги билдирүү
fmt.Println("SMS билдирүүсү:", message) // кошумча жүрүм-турум
}
func main() {
var notifier Notifier = &EmailNotifier{}
notifier = &SMSDecorator{wrapped: notifier}
notifier.Notify("Салам!")
}
Бул жерде, SMSDecorator электрондук почта билдирүүсүнө SMS жөнөтүүнү кошот, EmailNotifier кодун өзгөртпөстөн.