我有一個哲學編程問題。假設我有一個名爲Employees的類。員工擁有從dataTable中設置的業務成員。爲了填補這一點,我使用了一個方法,該方法需要僱員類的一個實例,通過dataTable循環,並設置傳遞給它的實例的成員。例如:我應該使用帶參數或函數的方法嗎?
public void GetEmployees(objEmployee)
{
//the function I am calling returns a dataTable of all the employees in the db.
dim dt as DataTable = dbEmployees.GetEmployees();
foreach(DataRow drow in dt.rows)
{
objEmployee.Name = drow["Name"].ToString();
objEmployee.ID = drow["ID"].ToString();
}
}
然後我會叫這樣的代碼在我的UI邏輯:
public void GetEmployees()
{
Employees employee = new Employees();
employee.GetEmployees(employee);
}
我的問題是,是否可以接受我的類的實例傳遞到一個方法和更改屬性就像我現在這樣,還是會更加面向對象的,通過這樣的功能做到這一點:
public Employees GetEmployees()
{
Employees objEmployee = new Employees();
//the function I am calling returns a dataTable of all the employees in the db.
dim dt as DataTable = dbEmployees.GetEmployees();
foreach(DataRow drow in dt.rows)
{
objEmployee.Name = drow["Name"].ToString();
objEmployee.ID = drow["ID"].ToString();
}
return objEmployee
}
然後,我會這樣稱呼它:
private void GetEmployees()
{
Employees employee;
employee = employee.GetEmployees();
}
在方法上使用函數有什麼優勢嗎?謝謝!
啊,你是對的。抱歉;這不是實際的代碼,只是我搞砸了一個例子:)你會建議什麼來解耦數據訪問層和業務層? – Austin 2009-02-09 18:07:39
這完全取決於您的應用程序的體系結構。我通常會建議將DAL放入它自己的程序集中,與域對象分開,並從DAL引用域對象,而不是反過來。業務層應該是相對獨立的。 – 2009-02-09 18:16:51
但是,如果你這樣做,你還是有同樣的問題嗎?如果您不得不從數據層引用域對象,它是如何獨立的? – Austin 2009-02-09 19:12:07