我正在嘗試使用ASP.NET和C#來製作簡單的3層架構應用程序。 我走到循環依賴問題。 我在商業層有學生課。 我有那些方法來表現層的接口:3層架構問題
void SaveStudent(Student student);
Student[] GetStudents();
這個貌似正常。
但我也從數據訪問層接口,以業務與方法:
void InsertStudent(Student student);
Student[] ReadAllStudents();
問題是與學生類。 由於我的業務層依賴於DAL,因此無法將數據訪問層的業務層引用。我知道DAL不應該依賴於業務層。但不知道如何解決這個問題。
我應該如何傳遞數據呢?
如果我將學生類放在DAL中,那麼我的表示層將被強制依賴於不好的數據訪問層。
我從來沒有嘗試過使用3層架構。
如何解決這個問題? 如果需要,可以隨意更改我的界面方法。
@達斯劉易斯:這看起來像對我來說是最好的答案,我明白如何做到這一點。 :) 謝謝達斯劉易斯。 – Vajda 2011-02-26 12:54:26
所以你會在模型中有一名學生,而在DTO中有另一名學生,都是爲了建築的純淨性?對不起,我認爲這是最糟糕的答案。不得不維護兩個並行的對象層次來表達相同的想法是一個不穩定的原因。不幸的是,這也很常見。 – duffymo 2011-02-26 13:16:44
@duffymo這種方法根本沒有學生實體的重複。爲什麼您認爲在這種情況下需要區分模型和DTO域? – 2011-02-26 13:23:52