chain

package
v0.0.0-...-eb36113 Latest Latest
Warning

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

Go to latest
Published: May 19, 2023 License: Apache-2.0, MIT Imports: 1 Imported by: 0

README

职责链模式

职责链模式用于分离不同职责,并且动态组合相关职责。

Golang实现职责链模式时候,因为没有继承的支持,使用链对象包涵职责的方式,即:

  • 链对象包含当前职责对象以及下一个职责链。
  • 职责对象提供接口表示是否能处理对应请求。
  • 职责对象提供处理函数处理相关职责。

同时可在职责链类中实现职责接口相关函数,使职责链对象可以当做一般职责对象是用。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DepManager

type DepManager struct{}

func (*DepManager) HandleFeeRequest

func (*DepManager) HandleFeeRequest(name string, money int) bool

func (*DepManager) HaveRight

func (*DepManager) HaveRight(money int) bool

type GeneralManager

type GeneralManager struct{}

func (*GeneralManager) HandleFeeRequest

func (*GeneralManager) HandleFeeRequest(name string, money int) bool

func (*GeneralManager) HaveRight

func (*GeneralManager) HaveRight(money int) bool

type Manager

type Manager interface {
	HaveRight(money int) bool
	HandleFeeRequest(name string, money int) bool
}

type ProjectManager

type ProjectManager struct{}

func (*ProjectManager) HandleFeeRequest

func (*ProjectManager) HandleFeeRequest(name string, money int) bool

func (*ProjectManager) HaveRight

func (*ProjectManager) HaveRight(money int) bool

type RequestChain

type RequestChain struct {
	Manager
	// contains filtered or unexported fields
}

func NewDepManagerChain

func NewDepManagerChain() *RequestChain

func NewGeneralManagerChain

func NewGeneralManagerChain() *RequestChain

func NewProjectManagerChain

func NewProjectManagerChain() *RequestChain

func (*RequestChain) HandleFeeRequest

func (r *RequestChain) HandleFeeRequest(name string, money int) bool

func (*RequestChain) HaveRight

func (r *RequestChain) HaveRight(money int) bool

func (*RequestChain) SetSuccessor

func (r *RequestChain) SetSuccessor(m *RequestChain)

Jump to

Keyboard shortcuts

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