对于那些改变的问题/答案,我应该寻找哪种模式?

时间:2011-06-28 21:39:05

标签: design-patterns asp.net-mvc-3

我为一个为发育障碍者提供日间计划服务的组织工作。在每天结束时,工作人员会为他们所工作的人填写每日日志,以记录当天的情况。此信息输入Excel电子表格,以便我们定期报告(即每季度)。我想将这些数据从Excel移动到数据库驱动的网站。我正在使用(我去的时候学习)ASP.Net MVC,但我的问题更为笼统。

每个日常日志都是为每个服务对象定制的;所有程序都是独一无二的(因此每个人目前都有自己的电子表格)。此外,当一个人的程序发生变化时,日志表上的字段(或问题)可以随时间变化。我目前正在尝试决定如何处理域/对象模型,特别是查看问题/答案对的字典类型,但所有答案的数据类型都不相同。我正在考虑使用Dictionary(字符串,对象)或Dictionary(字符串,动态)(如果可能的话)。

无论如何,我开始学习模式,我认为有一种或多种模式可能是最好的方式;我希望有人可以指出我认为可能适合的特定模式。

提前致谢..

1 个答案:

答案 0 :(得分:1)

一个问题实际上只是一块文字询问某些东西,所以我不会直接将它与你的答案结合起来。答案是什么可以是“T型”,所以我会使用泛型:

class Question
{
    String Text { get; set; }
}

class Answer<T>
{
    T _Answer;
    Question QuestionReference { get; set; }
    T Answer 
    {
        get { return _Answer; }
        set { if (value is T) _Answer = value; }
    }
}

您的数据库将包含一堆Question实体,您将使用一些业务逻辑来决定为每个人提出哪些问题,然后您将为每个问题创建新的Answer<T>,其中T是回答的回复类型。您还可以在答案类型上添加验证,并且可以将Question子类化为多项选择,其中问题需要知道要显示的潜在答案。

有很多方法可以表示这种类型的数据;最后选择对你来说最舒服的东西。