所以我重构一个小应用程序作为一个例子来获得更多练习。应用程序的目的(比方说)是从“注册新用户”表单中收集数据,将其保存在数据库中。我唯一的限制是我必须使用一个特殊的自定义数据访问类,它直接与数据库通信并返回DataTable对象中的数据(如果适用)。
我对表单上的一些细节以及它们如何适应层架构有疑问。例如,我的表单有一个从数据库中提供的下拉列表,但同时下拉列表并不表示每个SE的对象(与作为对象的用户不同,有一个类具有多个方法的用户,数据成员等)。我不想在后面的代码中调用存储过程,但我也不希望过度抽象。
在没有创建类抽象的情况下,处理这些小细节的优雅方法是什么。
希望我很清楚
答案 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不必担心这一点。