【发布时间】:2012-06-26 17:31:43
【问题描述】:
我正在为问卷创建一个框架。
问卷有几个问题。我的情况是寻找一个叫Question的类,它支持你想要的任何答案。
我的意思是,有些问题只需要一个答案,另一些需要两个答案,其他问题需要字符串、整数、双精度或开发人员构建的任何新结构(想象一下开发人员正在创建一个使用 Fraction 结构作为答案的数学问题,例如示例)。
换句话说,我需要支持任何数据类型或数量的答案。
所以我正在考虑创建一个名为 Question 的抽象类,其中将包含 Dictionary 的响应。
public abstract class Question
{
protected Question(string questionText)
{
this.QuestionText = questionText;
this.Responses = new Dictionary<string, object>();
}
public string QuestionText
{
get;
set;
}
public IDictionary<string, object> Responses { get; protected set; }
}
例如,如果我创建一个新的Question,这将是演示。
public sealed class Question1 : Question
{
public Question1(string questionText)
: base(questionText)
{
}
public int? Response1
{
get
{
int? value = null;
if (this.Responses.ContainsKey("Response1"))
value = this.Responses["Response1"] as int?;
return value;
}
set
{
this.Responses["Response1"] = value;
}
}
}
你觉得这个想法怎么样?我的第一个疑问:我将响应包含在班级而不是另一个独立班级中是否正确。
【问题讨论】:
标签: c# oop design-patterns