我想学习用 Go 编程,我决定作为一个宠物程序,我会为几个 CommandHandler 做一个简单的不同命令的调度程序(如果 CommandHandler 与它应该处理的命令同名。)
我的问题是,当我想要一个 CommandHandlerManager 发布一个命令,该命令将被分派到正确的 CommandHandler 时,它告诉我我需要一个 HelloWorldCommand 的具体实现,因为 HelloWorldCommandHandler 没有实现 Command 接口。
编译时的错误信息
E:\Desktop\ManBear\golang\src>go run main.go
# command-line-arguments
.\main.go:71: cannot use cmdHandler (type HelloWorldCommandHandler) as type CommandHandler in array or slice literal:
HelloWorldCommandHandler does not implement CommandHandler (wrong type for Handle method)
have Handle(HelloWorldCommand)
want Handle(Command)
我需要有人向我解释我做错了什么,我猜这意味着我应该为我的 HelloWorldCommandHandler 实现一个单独的func方法,仅用于接口,如下所示:
func (ch HelloWorldCommandHandler) Handle(cmd Command) {
fmt.Println("HelloWorldCommandHandler handled the basic command with name --> " + cmd.GetName())
}
但它产生了更多与类型相关的错误。
我正在尝试做的一个工作示例,并解释我如何以及为什么做错了,将不胜感激。
慕雪6442864
宝慕林4294392
随时随地看视频慕课网APP
相关分类