public class Info
{
// 几个 DataTable 字段
public DataTable TableA;
public DataTable TableB;
public DataTable TableC;
public DataTable TableD;
public DataTable TableE;
// 几个 string 字段
public string StrA;
public string StrB;
public string StrC;
public string StrD;
...
}
所有的业务数据通过 Info 类的实例来传递,方法返回时,返回值也从 info 中读取。至于 TableA, TableB, StrA, StrB 这些东西在调用方法前后是什么意思,由写代码的人自己解释。Info 类的另一个问题是,所有的业务数据在编译时都没有类型信息,全部是 object 或 string。强类型语言编译器带来的诸多好处,像烂菜叶一样给丢到了垃圾桶里。
业务逻辑的实现也是一塌糊涂。说这些是业务逻辑不够准确,这些代码并没有定义体现业务含义的接口,而完全是数据访问风格。套路是这样的:如果有一个名为 Group 的表,那么就写一个 Group 类,类中的标准方法有:Init,Select, Insert, Update, Delete。相应的,UI 上会有一个叫做 frmGroup 的窗体,Group 类就是给这个窗体使用的。我曾经添加了一个稍微表意一点的方法,然后被告知,这个方法不符合规范,你应该使用 Update 完成操作。而 sql 语句的编写也有很坑爹的要求,随便复制一句: