我正在尝试使用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