我有一個數據訪問層,將應用程序的其餘部分從持久性技術中抽象出來。現在的實現是SQL服務器,但可能會改變。無論如何,我發現這個主要的數據訪問類越來越大,隨着我的表增長(現在大約有40個表)。這個數據訪問層的界面,你可能想要得到是否需要重構大型數據訪問層
public interface IOrderRepository
{
Customer[] GetCustomerForOrder(int orderID);
Order[] GetCustomerOrders(int customerID);
Product[] GetProductList(int orderID);
Order[] GetallCustomersOrders(int customerID);
etc . . .
}
背後的實現數據的任何問題是運行適當的查詢並返回結果類型集合
這個意願基本的SQL存儲的特效保持增長和增長。它的維護性非常好,因爲沒有單一職責的真正突破,但是現在類已經超過2000行代碼。
所以問題是,由於肯定的班級規模(並且沒有真正的概念耦合),是否應該分解,如果是的話,取決於什麼維度或抽象層次。
請不要「嘗試[..]改變相當牛逼韓增加新表「。很多桌子都不是問題。如果你需要創建一個。 –
我不是在暗示拋棄常識 - 考慮以下兩點:首先,標準化的討伐可能會很糟糕,無論是爲了數據模型的清晰度還是性能。其次,我看到許多程序員爲類型創建新表格,這些表格可以優雅地統一到單個數據結構(表格)中。 –