[其它] 一个简单数据访问接口的设计
dayn9
2007-11-06
怪我没说清楚。比如:
1. classnf<Student>(NullType(), 2. IntType(&Student::num, "num"), 3. StringType(&Student::name, "name", 256), 4. IntType(&Student::age, "age")), 5. NullType()); 稍作改造,就可以看成是用DDL定义数据,包含了丰富的数据定义信息,甚至更进一步包括主键,索引。同时,这里面也可以通过宏伎俩隐含了类student的定义,这样保证了定义的唯一性。但程序员看不见显式的类定义了。 我说是对OO的侵入是不准确的。程序变成这个样子,是用DDL风格侵入常规风格的,我所说的常规风格指OO,SP,GP。 |
|
jimmy_c
2007-11-12
就侵入的问题说两句题外话:
1. 写程序时应该不断地换帽子。写类库程序,应该注意在“类库coder”和“客户应用coder”的帽子间调换。 前面的代码应该是客户代码,非库代码。故而必然不存在对库代码风格的侵入问题。 对于客户代码,风格取决于应用。数据库应用风格类似DDL无可厚非。 2. 如果对于这种风格的程序不适应,或是觉得侵入性太强,可以在类库之上,加一层API,改成function风格好了。就像最近的热贴"用C设计,用C++编码"里说的,客户程序调用API对于库开发者和应用开发者之间的版本维护会有一定好处,不算什么创见吧。 3. 其实OO风格编码本身侵入性就很强的。尤其C++不是太适合于做接口使用,编译结果不是很干净,从库中导入类不像API那样简单清楚等等。也算是对"用C设计,用C++编码"的补充吧。不过私下认为那篇文章和linus所说的话题其实有点离题万里。 |