正在开发一个成绩系统。使用ASP.NET MVC 3 C#。
定义如下实体类:Transcript(成绩单)、CourseResult(课程成绩)。
因为一份成绩单可能包含30-80门课程,
因为最后打印成绩单时需要很多显示控制,比如分学期,对齐等等,单纯依靠实体类恐怕难以解决。
于是考虑一下两种方法:
方案一:
实体类Transcript中不涉及课程成绩,定义两个边界类Term(学期)、ViewTranscript(成绩单显示)。
ViewTranscript类中定义List<Term>;
Term类中定义List<CourseResult>;
显示页面调用ViewTranscript类。
方案二:
定义三个实体类CourseResult(课程成绩)、Term(学期)、ViewTranscript(成绩单显示)。
Transcript类中定义List<Term>;
Term类中定义List<CourseResult>;
显示页面调用Transcript类。
我的困惑是:
1、方案一和二哪一个更加合理呢?
2、数据库中存储的只是CourseResult数据,学生个人信息数据,既然Transcript在每次显示的时候都要从数据库读取成绩数据和学生个人信息数据生成成绩单。是否Transcript本身也应该定义为边界类。
3、方案一中的Term、ViewTranscript两个类能够理解为边界类么?
网上查询的定义说一个系统可能会有多种边界类:
用户界面类 - 帮助与系统用户进行通信的类
系统接口类 - 帮助与其他系统进行通信的类
设备接口类 - 为用来监测外部事件的设备(如传感器)提供接口的类
我定义的这些Term、Transcript是否属于用户界面类?