我如此划分实体类和边界类合适么?
正在开发一个成绩系统。使用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是否属于用户界面类? 边界类 --------------------编程问答-------------------- 求高手解答,或者给出一个可行的办法,谢谢了。 --------------------编程问答-------------------- 一看楼主日后肯定前途无量,系统还没做就能想这么多,本人喜欢第二种,呵呵,其他的不懂,帮顶 --------------------编程问答--------------------
本人菜鸟一枚!
正是因为自己水平有限才过来学习。呵呵。 --------------------编程问答-------------------- 额,考虑了很多不该考虑的事情。
1.因为最后打印成绩单时需要很多显示控制,比如分学期,对齐等等,这都不是同等地位的东西,咋放一块考虑。
打印是打印的事情,和你的业务木啥关系。如果是你想做开发一个类似水晶报表的通用表报表程序,这样考虑木啥问题,但是你不是所以这个考虑过多,这不是该你考虑的事情
2.数据库什么什么对于你在OO设计阶段跟你没啥关系。
因为一份成绩单可能包含30-80门课程 学期 就是你要关心的事情,其他的事情和你没关系,排版打印有专用的报表设计工具完成,你不用操心了(除非你自己愿意自己开发一个报表设计工具) --------------------编程问答--------------------
我确实要自己通过CSS控制打印,这比水晶报表简单多了。至少是在我的这个项目中。
你回答的好像确实和我问的没啥关系。还是谢了。 --------------------编程问答-------------------- 自己顶一个! --------------------编程问答-------------------- 直接定义两个实体类,打印时根据条件筛选即可
补充:.NET技术 , C#