我需要设计CRUD应用程序。数据库中有三个表 - 员工,销售和客户。这些表的值有三种不同的电子表格。我的应用应该定期查看电子表格并更新相应的表格。我想出了以下设计
EmpMgr - EmpDAL - EmpDAO
SalesMgr - SalesDAL - SalesDAO
CustMgr - CustDAL - CustDAO
我的主应用程序中的计时器将定期在配置的位置获取电子表格,并在EmpMgr,SalesMgr或CustMgr中调用Parse功能。各个类解析文件并形成“Vector of EmpDao / SalesDao / CustDao”并调用相应的DAL来更新表。
我对这种方法的担忧是
答案 0 :(得分:1)
你错过了模型(想想MVC)。这应该解决你的问题。我认为你不需要DAL层。
例如,包含员工列表的excel表。你应该为员工准备一个具体的课程。员工列表可以保存在列表容器中。您的DAO将解析excel,并将每一行转换为员工对象,或接受员工对象并将其作为一行添加到Excel中。
对于您的第一个问题,您的代码可能如下所示。
class EmployeeManager()
{
...
public void CreateEmployee(Employee employee)
{
dao.Add(employee);
}
public void CreateEmployees(List<Employee> employees)
{
dao.AddMany(employees);
}
...
public List<Employee> GetAllEmployees()
{
List<Employee> employees = dao.GetAll();
employees.Sort();
}
...
}
class Employee()
{
Employee(string name, string job)
{
Name = name;
Job = job;
}
...
string Name { get; set; }
string Job { get; set; }
}
class EmployeeDAO()
{
...
public List<Employee> GetAllEmployees()
{
List<Employee> employees = new List<Employee>;
//parse all rows and make make employee objects out of them.
return employees;
}
}
对于Q1,通过使用该模型,您将使用C#提供的容器来保存员工列表,可以对其进行搜索,排序,修改等,并且已经为您完成了代码,尝试并测试了你和那些比你聪明的人写的。
对于Q2,如果将Excel从Excel更改为XML或其他任何内容,则只需修改DAO即可。使用管理器的任何东西只需要使用模型中的类,并使用C#中已有的容器。