关于模式/设计的建议

时间:2009-01-29 15:44:27

标签: c# design-patterns

我可以在我开发的软件上使用一些建议/帮助。

该应用程序是一个向导式应用程序,用户在选择转到下一个表单或返回上一个表单之前填写每个表单上的字段。相当简单。

现在菜单调用frmWiz1(InitialData),当frmWiz1返回DialogResult.OK时,菜单将调用frmWiz2(frmWiz1.Data)(不完全是,它存储来自每个表单的所有数据,并将这些引用传递给下一个表格)。每个数据对象都来自IPrintable接口,它定义了打印自身的方法,因此在向导的最后一页(打印预览/符号)中,它将每个Data对象添加到一个自定义PrintDocument对象,该对象只是遍历数据对象,调用它们打印功能和管理分页等。

最初我认为这是一个好主意,但现在我在想: - 菜单表单处理过多的流逻辑。 - 数据对象(处理适用于其特定数据集的所有业务逻辑)应该与打印逻辑分离(因为它们现在是,它们位于打印命名空间中 - 可能只是重定位会让我想到放心)。

我不知道。我对语言很不错,但我仍然是设计新手。

2 个答案:

答案 0 :(得分:2)

螺旋“frm”前缀!

关于应用程序的整体流程,我建议使用Application Controller或类似的东西来集中逻辑。

就UI而言,每个向导阶段都应该是一个单独的用户控件(没有“取消”,“完成”,“下一步”或任何按钮),它们放在根表单上,带有上述按钮。 / p>

没有对象应该负责打印本身 - 使用 IPrinterService 来执行此操作。

答案 1 :(得分:1)

只是一些一般性的:

  • This is a great Wizard control.我们在这里使用它,我必须说这个人做得很好。不确定它是否对您有用,但请查看

  • 准确了解一个对象需要知道的内容才能打印出来。尝试提出您需要一个对象才能“打印”的方法和/或事件。将它们放入接口,让业务对象实现该接口。然后,让您的打印帮助程序类严格处理接口。