重构部分代码，对protobuf消息应用工厂模式