不同类型的对象,其属性差异比较大但是需要一致对待,请教思路,详情入内,可另外开贴给分!
为方便起见,我用个假想的例子来描述这个问题:
设想某组织需要一个计划系统,实现制定计划、执行计划和实时显示执行情况三个主要功能。计划有很多种,例如生产计划、销售计划、培训计划,不同类型的计划具有一些共同的属性,比如说名称、起始时间、结束时间、进度,又具有差异很大的属性,如生产计划的物料,销售计划的片区,培训计划的课程等等。现在的要求是一致地对待这些计划,具体到三个功能分别如下:
(1)制定计划时所有计划列在一个列表中(数据结构也要求是在一个列表),既要显示共同的属性,又要显示不同的属性,大致如下所示,但是不同的属性的类型和值都不一样,属性的个数也不一样。
编号 类型 名称 起始时间 结束时间 其他独特的属性(*)
1 生产 生产砖头 2月4日 5月10日 物料:泥、水;车间:#3
2 培训 春季培训 2月8日 2月28日 课程:生产砖头大法;对象:全体员工;培训级别:3
3 销售 红色风暴行动 2月10日 3月25日 片区:西南、东北、东南、中南、华北
……
功能支持一般的增删改和保存和打开,保存时是所有计划保存在一个文件中。
* 这里只是说明大概,如何处理(显示、编辑、保存、加载)不同计划的独特属性正是我需要知道的
(2)执行计划时,从列表中取得计划项,然后开辟线程去执行,不同类型的计划用不同类型的线程。
(3)执行计划过程中,执行线程实时地上报进度、日志等信息,这些信息又需要集中显示,比如假定用带有编号的线来表示进度,所有计划的进度情况在一个图中显示,用带编号的字符消息列出日志,所有日志记录在一个列表中列出,如下所示,而主要的问题在于不同类型的计划执行,相应于其独特的属性上报的信息内容和格式也不一样。
进度:
1------------------------------------50%
2--------------------------30%
3----------------------------------------------60%
……
日志:
计划编号 日期 时间 消息内容
1 2月25日 22:30 物料短缺,生产被迫中止
2 2月26日 18:00 培训中期考试,十人作弊
1 2月26日 21:00 恢复生产
……