我正在使用ADO.NET 2.0和C#,sql Server 2005设计数据访问层.我经常与大脑争论放置这些调用的位置.对于可维护的健壮代码,我应遵循以下哪种方式.
方法1
Public Class Company { public string CompanyId {get;set;} public string CompanyAddress {get;set;} public bool Create() { } public bool Update() { } public bool Delete() { } }
方法2
Public Class Company { public string CompanyId {get;set;} public string CompanyAddress {get;set;} }
我会使用下面的另一个类来进行核心数据访问.如下
Public Class CompanyRepository { public Company CreateCompany(string companyId,string companyDescription) { } public bool UpdateCompany(Company updateCompany) { } public bool DeleteCompany(string companyId) { } public List<Company> FindById(string id) { } }
解决方法
使用方法2.从数据源(
single responsibility principle)读取/写入不是公司类的责任.但是,我甚至会创建一个ICompanyRepository接口,然后为该接口创建一个CompanyRepository实现.这样,您可以将ICompanyRepository注入需要保存/检索公司信息的类中.它还允许更容易的单元测试以及将来创建不同实现的能力(从数据库切换到xml文件或其他).