适用的设计模式

时间:2010-08-30 09:42:04

标签: c# design-patterns

我必须开发一个简单的Web应用程序来生成报告。我有一个表“契约”,我必须返回非常简单的聚合值:在一个时间范围内生成的文档数,文档的平均页数等。该表由批处理应用程序填充,用户将拥有允许他们仅查看部分报告的角色(如果他们可能被调用)。

我的目的是:

  1. 开发一个类,它生成所谓的报告,为将来的扩展打开(添加新方法以生成不同角色的新报告必须很容易)
  2. 将Web图形界面与数据库访问分离
  3. 我正在评估各种模式:装饰者,访客,......但是返回数据如此简单,我无法评估哪些适用,或者即使它是使用一个的情况。此外,我必须在不到5天的时间内完成。如果我制作一个所谓的“智能gui”就可以做到,但正如在第1点所说的那样,我不想在添加新角色或方法时遇到麻烦。


    谢谢你的回答。 对不起,我意识到我没有提供太多的信息。我住在迪尔伯特世界。目前我已经得到以下信息:db将是oracle(具体数据库尚不存在),所以没有EF,也许是linqtodataset(但我是linq的新手)。关于应用程序的新功能,由于经验丰富,我唯一希望的是不要被迫在整个应用程序中传播更改,即使它很简单。这就是我想要设计模式的原因(注意我已经说过“如果是这样的话”在我的问题中)。 我会亲它然后根据需要重新构建它,正如ladislav mrnka所建议的那样,但我仍然感谢任何有关如何继续扩展数据收集类的建议

3 个答案:

答案 0 :(得分:1)

KISS - 保持简单和愚蠢。你有五天时间。创建工作应用程序,如果有时间将其重构为更好的解决方案。

答案 1 :(得分:0)

良好代码的道路并未铺设设计模式。

良好的代码是可读,可维护,健壮,兼容且面向未来的代码。

不要误会我的意思:设计模式是一件好事,因为它们有助于对前几代程序员积累的经验进行分类,从而教授这些经验。每种设计模式都以一种既新颖又富有创意的方式解决了问题,而且 good 。当应用于任何其他问题时,设计模式必然是良好的代码。

良好的代码需要经验和洞察力。这包括设计模式的经验,洞察其适用性及其缺点和缺陷。

也就是说,我在您的具体案例中的建议是了解有关Web界面,数据库访问等的推荐做法。大多数C#程序员在ASP.NET中编写Web应用程序;倾向于使用LINQ-to-Entities或LINQ-to-SQL进行数据库访问;并使用Windows窗体或WPF作为桌面GUI。这些中的每一个都可能满足或不满足您的特定项目的要求。只有你可以告诉。

答案 2 :(得分:0)

如何使用策略模式检索数据?并使用以下界面使其始终可扩展。

  • IReportFilter:报告过滤器/条件集
  • IReportParams:获取报告参数
  • IReportData:获取结果集中的报告数据
  • IReportFormat:报告格式
  • IReportRender:呈现报告

大声思考。