我開始我的網站,像stackoverflow,有一點技術債務,我試圖還清。作爲一個合同開發,我已經在很多地方,看到實現這一結果的許多不同的方法,但我要去的方式是..n-tier體系結構反饋需要
演示(網絡)
業務層(老式實體類和BL層)
數據層(通過存儲過程DA類到SQL Server)
我的問題主要涉及的業務層。現在我有一個Entity名稱空間和一個BusinessLogic名稱空間。
BL有對DA和實體的引用。 實體具有對DA 參考(DA正的BL或實體的「不知道」)
我真的希望我將數據轉化爲實體的BL內發生的所有攪動 - 這樣的業務邏輯。但是,我希望實體能夠根據需要訪問BL,從而刪除實體對DL的引用。
所以......
難道又是「錯誤的」具有相同的命名空間內的BL和實體對象,使他們能夠協同工作?
從本質上講,我想有一個像員工實體對象(典型的例子,是吧?),並有員工有返回到該員工報告其它Employee對象的Hashtable一個
public Hashtable[] SubordinateEmployees
財產。但我不想在需要之前加載它。因此,對於大多數員工來說,財產永遠不會被訪問,但是當它發生時,它會自動加載調用DA的BL。
這個問題有意義嗎?
如果是這樣,我的解決方案嗎?
非常感謝!
我對此的關注是,我希望它們都捆綁在一起成爲一個單一的對象。這允許遞歸等,如果需要的話。就像上下瀏覽組織結構圖一樣。否則,我要麼維護兩個對象,要麼讓我的代碼獲取,然後將散列表存儲到可寫的道具中。 – klkitchens 2009-03-03 19:16:10
你可以這樣做,但你會交換遞歸帶來更高程度耦合的便利。現在你的Entity對象侵入了BL的角色,而不是僅僅依賴於BL。這將使事情在未來變得更難。這是一種折衷。 – Welbog 2009-03-03 19:21:08