[go]---从java到go(02)---一个简单的handler模式的实现
生活随笔
收集整理的這篇文章主要介紹了
[go]---从java到go(02)---一个简单的handler模式的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
類似于責任鏈模式吧,不同類實現相同的入參,執行不同的操作,一個執行完再確定要不要執行下一個。
用go實現:
1.定義一個接口
后面所有的handler都要實現這個接口的handler方法
2.定義接口的入參,
為了測試,只寫一個參數,參數只有一個屬性,代表是否執行下一個handler
實際生成中,各個handler就是靠這個傳遞信息的
3.定義接口實現,
我們定義3個實現對象
a.解析參數的handler
b.執行abtest的handler
c.輸出log日志的handler
4.確定handler執行順序,定義各個handler組成的數組
var (requestHandlers []IHandler ) requestHandlers = []IHandler{&myhandler.RequestHandler{}, //1. 解析參數&AbTestHandler{}, //2. abtest&LogHandler{}, //3. 日志處理}5.初始化handler入參
requestSeatContext := &model.RequestSeatContext{LastHandlerOK:true,}6.執行handler
//執行for _, handler := range requestHandlers {requestSeatContext.LastHandlerOK = handler.Handler(requestSeatContext)}執行結果
RequestHandler 執行 AbTestHandler 執行 LogHandler 執行如果把中間的AbTestHandler的handler方法的返回值改為false
執行結果就變成:
總結
以上是生活随笔為你收集整理的[go]---从java到go(02)---一个简单的handler模式的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XMLDictionary iOS的XM
- 下一篇: Pods简介