C# 设计一种灵活的用户查找机制

C# 设计一种灵活的用户查找机制,c#,asp.net,oop,C#,Asp.net,Oop,因此,有一个内部电子邮件应用程序,在公司(各个部门)中有不同的安装 当电子邮件进入系统时,我需要根据电子邮件地址执行查找。 根据部门的安装情况,每次查找都会有所不同 e、 g。 当一封电子邮件到达会计部门时,对该电子邮件的查询将针对特定的数据库 当销售部门收到电子邮件时,将针对我们的客户数据库进行查找 由于每个用户查找数据库都是不同的,所以我需要设计一个非常灵活的用户查找机制,以便可以轻松地管理特定于部门的代码 设计此类功能的最佳方法是什么?创建如下界面: interface ILookUpEm

因此,有一个内部电子邮件应用程序,在公司(各个部门)中有不同的安装

当电子邮件进入系统时,我需要根据电子邮件地址执行查找。 根据部门的安装情况,每次查找都会有所不同

e、 g。 当一封电子邮件到达会计部门时,对该电子邮件的查询将针对特定的数据库

当销售部门收到电子邮件时,将针对我们的客户数据库进行查找

由于每个用户查找数据库都是不同的,所以我需要设计一个非常灵活的用户查找机制,以便可以轻松地管理特定于部门的代码


设计此类功能的最佳方法是什么?

创建如下界面:

interface ILookUpEmail
{
    Email GetEmail(string email);
}

您可以有许多类,它们用自己的逻辑实现这个接口。这将使您的代码解耦,允许您设置正在使用的LookUpEmail类型,并便于测试电子邮件查找的每个实现和控制器。您将在查找电子邮件的方法上实现一个和遵循打开/关闭原则。另一种选择是使用,它有一个返回正确的EmailLookup类的类。

有多种方法可以实现所需的功能。 您可以使用策略模式和工厂模式相结合。工厂将根据一些运行时信息(例如部门ID)为您创建适当的算法(策略)。这些算法可能都实现了Yuriy Faktorovich建议的ILookUpEmail接口,所以您的程序实际上不需要知道这些算法是如何工作的(它们属于业务规则域,理想情况下不应与电子邮件应用程序的实现结合在一起,因为规则可能会经常更改,因此您不需要重新编译整个应用程序)