3层架构和下拉列表等小细节

时间:2009-06-02 00:23:48

标签: c# design-patterns

所以我重构一个小应用程序作为一个例子来获得更多练习。应用程序的目的(比方说)是从“注册新用户”表单中收集数据,将其保存在数据库中。我唯一的限制是我必须使用一个特殊的自定义数据访问类,它直接与数据库通信并返回DataTable对象中的数据(如果适用)。

我对表单上的一些细节以及它们如何适应层架构有疑问。例如,我的表单有一个从数据库中提供的下拉列表,但同时下拉列表并不表示每个SE的对象(与作为对象的用户不同,有一个类具有多个方法的用户,数据成员等)。我不想在后面的代码中调用存储过程,但我也不希望过度抽象。

在没有创建类抽象的情况下,处理这些小细节的优雅方法是什么。

希望我很清楚

3 个答案:

答案 0 :(得分:1)

有趣的是你应该问这个。我经历了这个问题here

我回答的其他Stack Overflow问题显示了其他部分(切向相关):

Getting ListView Data Items from Objects
Working with ListViews
Concatenating Properties in a DropDownList

答案 1 :(得分:1)

将非对象数据提供给UI的一个选项是创建一个或多个查找类,这些查找类是一个存储桶或“服务”,用于为下拉列表等内容获取奇数位数据...

示例:

myDDL.DataSource = Lookup.GetAllCountries(); // GetAllCountries是一种静态方法
//设置名称/值字段等...
myDDL.DataBind();

使用此方法,您仍然可以支持层分离。它不是面向对象或优雅的,但它非常实用。

答案 2 :(得分:0)

我不知道什么是最佳实践,但我所做的是我有一个实用程序类,它有一个方法,将DropDownList对象和枚举作为参数,所以我做

FillDropDown(ddlistPhoneType,DropDownTypes.PhoneTypes);

实用程序类有时会从数据库填充下拉列表,有时会从XML填充,有时会填充一些硬编码值。但至少GUI不必担心这一点。