编写处理不同消息的单个函数的方法
本文关键字:单个 函数 方法 消息 处理 | 更新日期: 2023-09-27 18:35:07
>我有一个将消息保存在数据库中的函数。根据类型保存消息有不同的方案。例如,我有"保存消息"、"保存消息以进行修复"和"从XML保存消息"。
一个明智的方法是创建一个带有指定操作类型的参数的函数,并在调用三个不同的方法之间进行选择的开关大小写?
到目前为止,我已经提出了这个:
public bool SaveMessage(Message message,
List<Image> images,
List<Attachments> attachments,
string type);
并且还有另外三种方法:SaveMessage()
、SaveMessageForRepair()
和SaveMessageXml()
。
这是一个合理的方法吗?
使用策略模式。
定义一系列算法,封装每个算法,并制作它们 通用。策略让算法独立于 使用它的客户端。
http://www.dofactory.com/Patterns/PatternStrategy.aspx
创建一个封装所有信息(包括消息类型)的对象,并将其传递给将此消息保存在数据库中的函数。现在,目标函数将决定保存的位置以及如何保存。
这样,如果在系统中引入了新的消息类型,则很容易覆盖行为并扩展功能。