我一直认为,大型switch语句是OOP设计不良的征兆。过去,我已经阅读了讨论该主题的文章,他们提供了基于OOP的替代方法,通常基于多态来实例化处理案例的正确对象。
我现在处在一个奇怪的switch语句的情况下,该语句基于来自TCP套接字的数据流,该协议中的协议基本上由换行符终止命令,随后的数据行和结束标记组成。该命令可以是100个不同命令中的一个,因此我想找到一种方法来将此怪物切换语句减少为更易于管理的内容。
我已经进行了一些谷歌搜索来找到我记得的解决方案,但是可悲的是,如今,对于许多类型的查询,谷歌已经变成了无关紧要的结果。
有没有解决此类问题的模式?关于可能的实现有什么建议吗?
我曾经想到的是使用字典查找,将命令文本与要实例化的对象类型进行匹配。这具有仅创建一个新对象并为任何新命令在表中插入新命令/类型的优点。
但是,这也存在类型爆炸的问题。现在,我需要100个新类,此外,我还必须找到一种将它们与数据模型完全接口的方法。“一个真正的转换声明”真的可行吗?
非常感谢您的想法,意见或评论。