新手到OO的问题

时间:2009-09-27 05:49:39

标签: windows winforms oop forms paradigms

我的问题与Windows表单有关

假设我有一个用于客户和订单的组合框,并且根据对这些组合框的选择,我为所有订单详细信息填充数据网格。

我对datagrid行中的双击事件感兴趣。

事件发生时,有两件事情可能发生:

  • 记录已删除。
  • 改变了一个或两个组合框。

没有OO经验,我正在处理代码隐藏中的所有逻辑。

这是错误的做法吗?我是否应该创建一个返回布尔值的类,是否取消事件或者在满足所有条件的情况下执行其他操作?

如果我创建一个处理该逻辑的类,那么该类需要引用datagrid和所有相关控件及其Previous值和当前值。

我很困惑。

2 个答案:

答案 0 :(得分:3)

我不确定这是一个OO问题:更多关于patterns

如果我是你,我会看MVC(模型视图控制器),MVP(模型视图演示者)等等。 Martin Fowler是此主题的主要权威之一。

MVVM在WPF中很受欢迎 - 不确定数据绑定是否符合表单。

关键之一是,如果你的逻辑与显示系统分开,那么测试就会容易得多。

答案 1 :(得分:0)

面向对象的做事方式是一个人无法一次性告诉你的事情。这是一个全新的范式,思考如何通过很少的交互对象来解决问题。这些对象来自您要为其创建解决方案的问题域。

从问题中,我可以轻松地选出至少两个问题域对象 - 一个是“客户”而另一个是“订单”。 可能是你的“Order”类由“OrderItem”的各种对象组成,它由一个“Product”引用,quatity和可能是价格。

如果这有点难以理解,我很确定你至少会有一个数据库,其中包含提供持久存储数据的表。您拥有的表(在许多情况下)可以对应于您需要设计的实际类。

您不必设计实际上将与数据网格和其他控件一起使用的单独类,这些类可以保留在后面的代码中。但是,所有业务域对象和可以在这些对象上执行的操作都必须封装到类中。