编写处理不同消息的单个函数的方法

本文关键字:单个 函数 方法 消息 处理 | 更新日期: 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

创建一个封装所有信息(包括消息类型)的对象,并将其传递给将此消息保存在数据库中的函数。现在,目标函数将决定保存的位置以及如何保存。

这样,如果在系统中引入了新的消息类型,则很容易覆盖行为并扩展功能。