我有一個關於n層體系結構的問題。在提出這個問題之前,我想了很久並且很努力,因爲這裏已經有很多類似的問題了......但是,在一天半的時間裏看完這些問題並閱讀其他答案後,我仍然不確定。各種看似相似的術語和不同的方法讓我感到困惑。n層體系結構 - BLL,DAL和接口。什麼是最佳做法?
如果我在不同的類庫中有一個BLL和一個DAL,BLL和DAL之間進行通信的一種方法是利用一個接口,類似於另一個獨立DLL中定義的DTO,BLL和DAL。 BLL中的我的領域模型實體將實現此接口,DAL中的任何ORM生成的對象也將實現此接口。爲了保存我的業務實體,我可以將它們傳遞給DAL,因爲它們實現了共享接口,所以它們可以很好地接受它們。我也可以將對象傳遞迴實現此接口的BLL。這似乎是合理的,因爲BLL和DAL都只需要知道基本接口,而不是其他的具體實現。
我的問題是什麼是在另一邊創建對象的最佳方法是什麼?例如,如果我在實現IPerson的BLL中有一個Person對象,並且還有一個PersonDataObject或者實現IPerson的DLL中的任何對象,我將Person傳遞給DAL中的一個方法,該方法需要IPerson的參數,然後在DAL中, d必須重構一個PersonDataObject來保存。這甚至是最好的方法嗎?
對不起,我可能沒有解釋得這麼好,因爲我很困惑。對於傻瓜答案的最佳做法將不勝感激。
而我忘了包括的內容:讓BL調用一個「Factory」方法,它負責實例化具體的實現;我傾向於在配置中將它們定義爲易於更改。 – 2010-06-27 05:40:46