为新项目对话框和编辑项目对话框或不同的类创建一个类更好吗?

时间:2011-01-30 22:44:13

标签: java c++ oop

我正在制作一个程序,其中有一个项目列表。您可以添加新项目,也可以编辑现有项目。用于编辑项目和添加新项目的对话窗口实际上是相同的,一个小的细节改变是好的,一个编辑而另一个添加项目,很少其他不同。

我想知道一个更好的设计选择是拥有两个单独的类,还是只有一个传递参数的类,它指定对话框是用于编辑还是用于添加。

我在Qt中使用C ++,但我认为相同的设计选择适用于任何OOP语言/框架。

提前致谢。

3 个答案:

答案 0 :(得分:2)

通常,这种事情是通过在某种标记语言中使用模板来组织的(MVC中的“视图” - 通常使用HTML或XML)。我实际上对Qt知之甚少,但也许你的类实际上就像模板一样。

你可能有3个模板:

  1. 添加项目模板
  2. 修改项目模板
  3. 项目表单模板
  4. 表单模板将在模板#1和#2的中间某处导入。

答案 1 :(得分:2)

我通常在CREATE和EDIT模式下使用相同的MVC类。该模型持有一个标志以指示哪种模式。视图将读取模型中的标志以确定要显示/启用的控件等.Controller还将读取模型上的标志以确定在用户提交表单时要调用的服务层方法(例如,更新或创建) 。

我发现这是一个更易于维护的解决方案,因为它避免了重复,并将逻辑保存在一个地方。即在一个视图中查看逻辑而不是两个控制器逻辑,而不是两个......

答案 2 :(得分:0)

我通常只实现编辑对话框。如果要创建新项目,请为其指定要编辑的新项目。所有对话框都应编辑私有数据并将其返回。通过这种方式,客户端可以正确响应OK / Cancel,并且您无需处理一堆UNDO垃圾。