我正在重構我們的BI層以使我們的代碼更「鬆散耦合」,我有興趣聽到你們認爲可能會有趣的改進?更改我們的BL設計 - 哪種模式最有用?
目前,我們的API是類似以下內容: -
// Fetch a collection of objects
ProductCollection prods = Product.GetProducts();
// Load an individual object, make change and save it back
Product p = new Product();
if(p.Load(productID))
{
p.Name = "New Name";
p.Save();
}
正如你所看到的,我們用來獲取對象的集合/加載單個對象和保存更改方法都是建立在「模式」類。我們的每個Model類都繼承自一個ObjectBase基類,該基類包含數據庫訪問函數和更改跟蹤,所以當有人通過屬性更改值時,該對象會自動標記爲髒,並且通知會觸發任何對象(UI)訂閱了這些事件。
我想要做的就是使用「存儲庫模式」,以便我們可以將數據庫實現從模型中抽象出來。然而,我一直在研究的大部分代碼似乎都暗示「模型」類不應該包含任何智能,應該只是數據的容器。相反,邏輯應該通過使用服務來應用。這是否意味着,然後完成上述,我需要做的是這樣
List<Product> prods = ProductService.GetProducts();
Product p = ProductService.GetSingleProduct(productID);
p.Name = "New Name";
ProductService.SaveProduct(p);
這似乎做的更復雜的方式使得它更難的業務對象中封裝的功能。
有人可以解釋爲什麼這是一個更好的做法,或者我誤解了這些概念?
感謝
詹姆斯