我試圖找出存儲庫模式的正確定義。存儲庫模式方法的標準化
我原來的理解是這樣的(非常簡單化了),從數據
- 獨立您的Business Objects對象在數據訪問層
- 標準化的接入方式。
我真的看到了2種不同的實現方式,網上沒有正式的例子,我看到的那些東西都藏在書本里。
實現1:
public Interface IRepository<T>{
List<T> GetAll();
void Create(T p);
void Update(T p);
}
public interface IProductRepository: IRepository<Product> {
//Extension methods if needed
List<Product> GetProductsByCustomerID();
}
實現2:
public interface IProductRepository {
List<Product> GetAllProducts();
void CreateProduct(Product p);
void UpdateProduct(Product p);
List<Product> GetProductsByCustomerID();
}
注意到的第一件是通用的獲取/更新/ GETALL等,二是更多的東西我會將「DAO」定義爲。
兩者都共享數據實體提取。我喜歡,但我可以做一個簡單的DAO相同。然而,第二件規範訪問操作我看到價值,如果實施該企業廣泛的人會很容易地掌握設定爲您的存儲庫訪問方法。
我錯誤地認爲數據訪問的標準化是這種模式的一個組成部分嗎?如果兩者都是正確的,那麼爲什麼會選擇執行實施2?
Rhino在實現1中有一篇很好的文章,當然MS有一個模糊的definition,實現2的一個例子是here。
對我來說_interface_是一個抽象,即與_implementation_相反。我們是在討論這裏的接口,還是在討論實現類? – MEMark 2013-10-12 14:38:25