【问题标题】:Which pattern should I look to for questions/answers that change?对于发生变化的问题/答案,我应该寻找哪种模式?
【发布时间】:2011-06-28 21:39:04
【问题描述】:

我在一家为发育障碍人士提供日间计划服务的组织工作。每天结束时,工人们为与他们一起工作的人填写每日日志,以记录一天的进展情况。该信息被输入到 Excel 电子表格中,以使我们能够进行定期报告(即每季度)。我想将这些数据从 Excel 移动到数据库驱动的网站。我正在使用(边走边学)ASP.Net MVC,但我的问题更笼统。

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

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

提前谢谢..

【问题讨论】:

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


    【解决方案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&lt;T&gt;,其中 T 是答案的返回类型。您还可以为您的答案类型添加验证,并且您可以将 Question 子类化为多项选择,其中问题需要知道要显示哪些潜在答案。

    有很多方法可以表示这种类型的数据;最后选择你觉得最舒服的。

    【讨论】:

    猜你喜欢
    • 2011-08-26
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多