[英]Class Naming Conventions with Layered Architecture and Entity Framework
我正在設計一個分層架構(服務/業務邏輯層,數據訪問層),並且正在努力解決一些問題。
示例(請原諒編寫得不好的代碼,這是我腦中的臨時代碼):
public interface IEmployer
{
string Name { get; set; }
ICollection<IEmployee> Employees { get; set; }
}
public interface IEmployee
{
string Name { get; set; }
}
public class Employer : IEmployer
{
public string Name { get; set; }
public ICollection<IEmployee> Employees { get; set; }
}
public class Employee : IEmployee
{
public string Name { get; set; }
}
public class DataManager
{
public IEmployer GetEmployer(string name) { ... }
public IEmployee CreateEmployeeObject(string name) { ... }
public void Save(IEmployer employer) { ... }
public void Save(IEmployee employee) { ... }
}
[DataContract]
public class Employee
{
[DataMember]
public string Name { get; set; }
}
public class HireService
{
public void HireNewEmployee(Employee newEmployee, string employerName)
{
DataManager dm = new DataManager();
IEmployer employer = dm.GetEmployer(employerName);
IEmployee employee = dm.CreateEmployeeObject(newEmployee.Name);
dm.Save(employee);
employer.Employees.Add(employee);
dm.Save(employer);
}
}
沒有EF,上面的工作正常。 IEmployee類型用於服務層,不與Employee數據協定類型沖突。 但是,EF不能使用接口,因此我需要使用類而不是接口。
我看到幾個選項:
對於業務和數據層中定義的類名,我應遵循哪種命名約定?
類似的問題: DataAccess項目中類的命名約定是什么? 除了EF導致接口問題。
實際上,DAL中定義的類應該是業務層中使用的類 - 這些是您真正的域對象。 從業務層公開的類只是數據傳輸對象,因此如果要構建任何約定,則應該重新命名數據協定。
無論如何,命名約定是非常主觀的。 選擇最適合您需求的方式,並在命名方面保持一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.