Sobes.tech
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 кодун өзгөртпөстөн.