0

我的问题与 Windows 窗体有关

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

我对数据网格行中的双击事件感兴趣。

事件发生后,可能会发生 2 件事:

  • 记录被删除。
  • 一个或两个组合框已更改。

由于没有 OO 经验,我在代码隐藏中处理所有这些逻辑。

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

如果我创建一个处理该逻辑的类,那么该类需要引用数据网格和所有关联的控件以及它们的先前值和当前值。

我只是困惑。

4

2 回答 2

3

我不确定这是一个面向对象的问题:更多关于patterns

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

MVVM在 WPF 中很流行 - 不确定数据绑定是否在 Forms 中由它决定。

关键之一是,如果您将逻辑与显示面板分开,那么测试会容易得多。

于 2009-09-27T05:57:27.697 回答
0

面向对象的做事方式是没有人能一口气告诉你的。这是一种全新的思考范式,即如何根据少数交互对象来解决问题。这些对象来自您正在为其创建解决方案的问题域。

从这个问题中,我可以轻松地挑选出至少两个问题域对象——一个是“客户”,另一个是“订单”。可能是您的“订单”类由“订单项目”的各种对象组成,这些对象由对“产品”之一的引用、数量和价格组成。

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

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

于 2009-09-27T06:04:54.167 回答