C# 选择GoF模式
我们目前正在进行Access应用程序到.NET前端的大规模转换。许多Access应用程序都有报告和创建RDLC(或Crystal rpt)的方法,而带有数据集填充和绑定的宿主表单则很费劲 因此,我创建了一个C#类库来提供帮助,您为它指定报告名称,它完成其余的工作。 i、 e.目前我可以做:C# 选择GoF模式,c#,design-patterns,C#,Design Patterns,我们目前正在进行Access应用程序到.NET前端的大规模转换。许多Access应用程序都有报告和创建RDLC(或Crystal rpt)的方法,而带有数据集填充和绑定的宿主表单则很费劲 因此,我创建了一个C#类库来提供帮助,您为它指定报告名称,它完成其余的工作。 i、 e.目前我可以做: ReportViewer.GetReportViewer("ReportXXX") .AddParameter("UserID", "a983157") .SetFormSize
ReportViewer.GetReportViewer("ReportXXX")
.AddParameter("UserID", "a983157")
.SetFormSize(new Size(1024, 768))
.SetFormTitle("My Report")
.SetFormLocation(FormStartPosition.CenterScreen)
.Show();
这适用于内置的RDLC格式,但我希望将其扩展到Crystal。但是我知道,如果我只是将它添加到同一类库中,那么我将需要分发Microsoft Reporting程序集和Crystal程序集
所以我想把它分成3个库,一个用于公共代码,一个用于Microsoft,一个用于Crystal。消费者不会扩展或添加他们自己的报表,他们只会给我一个报表名称,然后我计算出它是什么类型,并构建适当的表单
我想这是我想要的建筑模式,但不确定,这座桥看起来也很合适,但它不是一座建筑模式,我想这就是我要做的。我想你实际上想要一座。公共代码将放在一个基类中,您将有两个来自基类的派生类,一个用于Crystal,一个用于RDLC。工厂将根据报告名称返回相应的报告对象实例 为了给你一个提示,你需要明白,没有规则规定你必须坚持一种模式。实际上,没有一种实用意义上的设计模式是单独使用的