# event **Repository Path**: gomods/event ## Basic Information - **Project Name**: event - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-03 - **Last Updated**: 2021-12-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 事件分发器 经常在项目遇到在主流程里面加入临时/附属逻辑,如果全都放在主流程里面,会显得代码比较臃肿,也不便于后期的维护,此时可以使用 "事件分发器" 来解耦逻辑代码,将非主流代码分离出来。 ## 安装 ```shell script go get gitee.com/gomods/event ``` ## 使用示例: ```go package main import ( "fmt" e "gitee.com/gomods/event" "time" ) const HELLO_WORLD = "helloWorld" func main() { // 实例化分发器 dispatcher := e.NewEventDispatcher() // 监听器 listener := e.NewEventListener(myEventListener) // 监听器 dispatcher.AddEventListener(HELLO_WORLD, listener) time.Sleep(time.Second * 2) //dispatcher.RemoveEventListener(HELLO_WORLD, listener) // 事触发事件 dispatcher.DispatchEvent(e.NewEvent(HELLO_WORLD, nil)) } // 事件回调 func myEventListener(event e.Event) { fmt.Println(event.Type, event.Object, event.Target) } ```