一个使用 Swift 编写的轻量级 Command Bus 实现
Command Bus 的想法是创建代表您应用程序要执行的操作的命令对象。然后,您将其投入总线,并确保命令对象到达它需要去的地方。
因此,命令进入 -> 总线将其委托给处理程序 -> 然后,处理程序实际上执行工作。命令本质上代表了对您的应用程序层的调用。
更多信息请参阅这里。
{
"{CommandNameA}": "{CommandHandlerNameA}",
"{CommandNameB}": "{CommandHandlerNameB}",
"{CommandNameC}": "{CommandHandlerNameC}"
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
/*** Register to the Command event ***/
NSNotificationCenter.defaultCenter().addObserver(self, selector: "onCommandHandled:", name:"COMMAND_DONE", object: nil)
/*** Create the CommandBus ***/
let commandBus: CommandBus = CommandBus(configurationFileName: "configuration")!
/*** Create your own Command ***/
let customCommand: CustomCommand = CustomCommand()
/*** Send your command to the CommandBus with your event name ***/
commandBus.handle(command: customCommand, commandHandledEvent: "COMMAND_DONE")
}
func onCommandHandled(notification: NSNotification) {
/*** This method is called when the CommandHandler have done ***/
print("Command Handled: \(notification.object!)")
}
}
您还可以查看示例项目。
Ekhoo
CommandBus 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。