重构command,event的设计