我正在用 C++ 实现一个协议模型(特别是缓存一致性协议,但这对于这个问题并不重要)
该协议有两个值: aprevious_state
和 a message_type
。两者都是枚举。协议应该为两个输入的每个组合选择一个唯一的操作。一些组合无效(应该显示错误),一些组合将被停止。
用 C++ 对上述场景进行编码的好方法是什么?我能想到:两个嵌套的 switch 块来选择一个输入组合,并调用一个特定的动作实现为一个函数。
是否有一些更优雅和灵活的方式来编码上述场景?理想情况下,从协议中添加/删除输入组合应该很容易。
感谢您的任何建议。(我是设计模式的新手,不知道有什么适合这里的)