您必须使用以下两种方法之一在BLL< - >之间传输数据。 DAL
1-将数据放在Entity.dll中,其中DAL和BLL以及UI可以使用Entity.Student,它只包含没有任何逻辑的学生信息。
增加耦合: - 这可能会导致麻烦,例如,如果学生拥有ClassID,其中每个学生只有一个班级可以参加。然后业务发生变化,以便学生有一份清单。在这种情况下,您可能会在所有层(UI,BLL,DAL)中重写大量代码。
2- DAL拥有自己的学生,而BLL拥有自己的学生,然后当你将一个对象从DAL传递给BLL时,你需要将每个DAL学生转换成BLL学生。
很多代码: 我甚至不喜欢Translator.dll的想法,仍然有很多代码,并且有点浪费处理器周期。
有没有出路,你的意见是什么?
由于
答案 0 :(得分:0)
您不能使用完全相同的代码来满足不同的要求 - 您必须处理它。尽管如此,最佳做法是为UI层使用不同的自适应类(viewmodels)。而且你根本不需要BLL层(嗯,你需要,但仅限于跨领域的问题) - 看看Domain Driven Design。然后,如果需求发生变化,您只需要更改域对象及其映射到视图模型(可以使用Automapper等工具轻松完成)