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

时间:2012-05-23 08:20:21

标签: c# oop design-patterns

我有一个将消息保存在数据库中的功能。根据类型保存消息有不同的方案。例如,我有保存消息,保存消息以进行修复,以及从XML保存消息。

一种明智的方法是使用指定操作类型的参数创建单个函数,并在调用三种不同方法之间选择一个开关案例吗?

到目前为止,我已经想出了这个:

public bool SaveMessage(Message message,
                        List<Image> images,
                        List<Attachments> attachments,
                        string type);

并有其他三种方法:SaveMessage()SaveMessageForRepair()SaveMessageXml()

这是一种合理的方法吗?

2 个答案:

答案 0 :(得分:5)

使用策略模式

  

定义一系列算法,封装每个算法并制作它们   互换。策略让算法独立于   使用它的客户。

http://www.dofactory.com/Patterns/PatternStrategy.aspx

答案 1 :(得分:0)

创建一个对象,该对象封装包括消息类型在内的所有信息,并将其传递给在数据库中保存此消息的函数。现在,目标函数将决定保存位置和保存方式。

通过这种方式,如果系统中引入了新的消息类型,将很容易覆盖行为并扩展功能。