请问这样的功能该如何设计??

有这样一个调查问卷的功能:在一个主题下面有若干个问题,这些问题可以是判断题,单选题,多选题等。事先先通过维护一个模板,把若干个问题添加进来,并且排好序。调查的时候,从数据库中把这个模板取出来,并且根据题型生成问题显示在页面上。

在设计过程中遇到几个问题:
1、原来设计了一个BaseQuestion作为基类,然后判断题,单选题和多选题实体类从这个基类中继承。这样就产生一个问题,从数据库中取出来的时候,如何把所有类型的问题都放到一个list中
2、在页面显示各个问题的时候,需要大量的判断,而且如果以后又增加新的题型,可能代码需要很多修改,这种情况如何考虑避免?

在系统设计方面经验不足,希望大家多给些建议。多谢

基类继承是最差的设计,可是一般人都会从这点切入,主要是学习oo语言时被语言误导。

先从场景入手分析,不了解场景就进行归纳抽象很危险。

问题的本质是“问”和“答”,题型只是UI层面控制的,相当于展现问题的模板,和问题本身无关。

所以问题只需要Question(主题)、QuestionBlanks(问)、QuestionBlankOptions(问的选项)即可。

主题:今天早晨你上了(1)网,中午上了(2)网?
问:(1)[格式:枚举],(2)[格式:文本]
问的选项:(1)的选项:A.jdon[正确答案],B.infoq
(2)的选项: [文本格式无需选项]

2012-08-24 09:25 "@gameboyLV"的内容
题型只是UI层面控制的,相当于展现问题的模板 ...

有道理,先分清显式形式和隐式模型,数据库属于隐式模型。

多谢两位,但是我对于gameboyLV 所讲的还是不太明白。。希望能再讲清楚些。。

目前我采用的这种继承的方式,在功能实现中遇到很多的问题。。如何改变这种基类继承的设计?