我一直认为大型开关语句是糟糕的OOP设计的症状.在过去,我阅读了讨论这个主题的文章,他们提供了基于OOP的基于OOP的方法,通常基于多态来实例化处理案例的正确对象.
我现在处于一种基于来自TCP套接字的数据流的怪异切换语句的情况,其中该协议基本上由换行符组成,后跟数据行,后跟结束标记.该命令可以是100个不同命令之一,因此我想找到一种方法将这个怪物切换语句减少到更易于管理的状态.
我已经做了一些谷歌搜索,以找到我记得的解决方案,但遗憾的是,谷歌如今已成为各种查询无关结果的荒地.
这类问题有什么模式吗?有关可能实施的任何建议?
我有一个想法是使用字典查找,将命令文本与要实例化的对象类型相匹配.这具有仅仅创建新对象并在表中为任何新命令插入新命令/类型的优点.
但是,这也存在类型爆炸的问题.我现在需要100个新类,而且我必须找到一种方法将它们干净地连接到数据模型."一个真正的开关声明"真的是要走的路吗?
我很感激你的想法,意见或评论.
我有一条消息进入我的C#应用程序,这是一个序列化为JSON的对象,当我对其进行反序列化时,我有一个"名称" string和一个"有效负载" string[],我希望能够获取"名称"并查找它在函数字典中,使用"Payload"数组作为参数,然后将输出返回给发送消息的客户端,这可能在C#中吗?
有人可以给我一个例子,说明我如何在字典中存储不同的函数,其中int作为键并作为值运行.那么我可以轻松地调用函数如下:
functionsDictionary[123](string);
Run Code Online (Sandbox Code Playgroud)
注意字典中的所有函数只需要一个输入字符串.并且不会有回报.
我有一本带string键的字典,例如123456789。现在,在我的应用程序内的某个其他点,我希望我的字典查找此键,然后运行该方法本身(沿着键存储)或以某种方式返回该函数,以便我可以手动添加参数。这可能吗?