From 1eaf52264ef707ee61e3573ab459310a7e723233 Mon Sep 17 00:00:00 2001 From: Edward Date: Sun, 3 May 2020 21:09:18 +0800 Subject: [PATCH] remove long name files --- behavior/21_chain_of_responsibility/README.md | 11 --- behavior/21_chain_of_responsibility/chain.go | 94 ------------------- .../21_chain_of_responsibility/chain_test.go | 23 ----- 3 files changed, 128 deletions(-) delete mode 100644 behavior/21_chain_of_responsibility/README.md delete mode 100644 behavior/21_chain_of_responsibility/chain.go delete mode 100644 behavior/21_chain_of_responsibility/chain_test.go diff --git a/behavior/21_chain_of_responsibility/README.md b/behavior/21_chain_of_responsibility/README.md deleted file mode 100644 index ac6f859..0000000 --- a/behavior/21_chain_of_responsibility/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# 职责链模式 - -职责链模式用于分离不同职责,并且动态组合相关职责。 - -Golang实现职责链模式时候,因为没有继承的支持,使用链对象包涵职责的方式,即: - -* 链对象包含当前职责对象以及下一个职责链。 -* 职责对象提供接口表示是否能处理对应请求。 -* 职责对象提供处理函数处理相关职责。 - -同时可在职责链类中实现职责接口相关函数,使职责链对象可以当做一般职责对象是用。 diff --git a/behavior/21_chain_of_responsibility/chain.go b/behavior/21_chain_of_responsibility/chain.go deleted file mode 100644 index 78ecb8a..0000000 --- a/behavior/21_chain_of_responsibility/chain.go +++ /dev/null @@ -1,94 +0,0 @@ -package chain - -import "fmt" - -type Manager interface { - HaveRight(money int) bool - HandleFeeRequest(name string, money int) bool -} - -type RequestChain struct { - Manager - successor *RequestChain -} - -func (r *RequestChain) SetSuccessor(m *RequestChain) { - r.successor = m -} - -func (r *RequestChain) HandleFeeRequest(name string, money int) bool { - if r.Manager.HaveRight(money) { - return r.Manager.HandleFeeRequest(name, money) - } - if r.successor != nil { - return r.successor.HandleFeeRequest(name, money) - } - return false -} - -func (r *RequestChain) HaveRight(money int) bool { - return true -} - -type ProjectManager struct{} - -func NewProjectManagerChain() *RequestChain { - return &RequestChain{ - Manager: &ProjectManager{}, - } -} - -func (*ProjectManager) HaveRight(money int) bool { - return money < 500 -} - -func (*ProjectManager) HandleFeeRequest(name string, money int) bool { - if name == "bob" { - fmt.Printf("Project manager permit %s %d fee request\n", name, money) - return true - } - fmt.Printf("Project manager don't permit %s %d fee request\n", name, money) - return false -} - -type DepManager struct{} - -func NewDepManagerChain() *RequestChain { - return &RequestChain{ - Manager: &DepManager{}, - } -} - -func (*DepManager) HaveRight(money int) bool { - return money < 5000 -} - -func (*DepManager) HandleFeeRequest(name string, money int) bool { - if name == "tom" { - fmt.Printf("Dep manager permit %s %d fee request\n", name, money) - return true - } - fmt.Printf("Dep manager don't permit %s %d fee request\n", name, money) - return false -} - -type GeneralManager struct{} - -func NewGeneralManagerChain() *RequestChain { - return &RequestChain{ - Manager: &GeneralManager{}, - } -} - -func (*GeneralManager) HaveRight(money int) bool { - return true -} - -func (*GeneralManager) HandleFeeRequest(name string, money int) bool { - if name == "ada" { - fmt.Printf("General manager permit %s %d fee request\n", name, money) - return true - } - fmt.Printf("General manager don't permit %s %d fee request\n", name, money) - return false -} diff --git a/behavior/21_chain_of_responsibility/chain_test.go b/behavior/21_chain_of_responsibility/chain_test.go deleted file mode 100644 index b0ddb39..0000000 --- a/behavior/21_chain_of_responsibility/chain_test.go +++ /dev/null @@ -1,23 +0,0 @@ -package chain - -func ExampleChain() { - c1 := NewProjectManagerChain() - c2 := NewDepManagerChain() - c3 := NewGeneralManagerChain() - - c1.SetSuccessor(c2) - c2.SetSuccessor(c3) - - var c Manager = c1 - - c.HandleFeeRequest("bob", 400) - c.HandleFeeRequest("tom", 1400) - c.HandleFeeRequest("ada", 10000) - c.HandleFeeRequest("floar", 400) - // Output: - // Project manager permit bob 400 fee request - // Dep manager permit tom 1400 fee request - // General manager permit ada 10000 fee request - // Project manager don't permit floar 400 fee request - -}