design

package
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2024 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConcreteSubject

type ConcreteSubject struct {
	// contains filtered or unexported fields
}

ConcreteSubject 具体主题实现

func (*ConcreteSubject) NotifyObservers

func (s *ConcreteSubject) NotifyObservers()

NotifyObservers 通知观察者

func (*ConcreteSubject) RegisterObserver

func (s *ConcreteSubject) RegisterObserver(observer Observer)

RegisterObserver 注册观察者

func (*ConcreteSubject) RemoveObserver

func (s *ConcreteSubject) RemoveObserver(observer Observer)

RemoveObserver 移除观察者

type Observer

type Observer interface {
	Update(interface{})
}

Observer 定义观察者接口

type Subject

type Subject interface {
	RegisterObserver(Observer)
	RemoveObserver(Observer)
	NotifyObservers()
}

Subject 定义主题接口

type User

type User struct {
	Age  string
	Name string
}

func NewUser

func NewUser(opts ...UserOption) *User

type UserAge

type UserAge func(*User)

func (UserAge) Apply

func (op UserAge) Apply(u *User)

type UserName

type UserName struct {
	Name string
}

func NewUserName

func NewUserName(name string) *UserName

func (UserName) Apply

func (u UserName) Apply(user *User)

type UserOption

type UserOption interface {
	Apply(*User)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL