作为信息系统最关键的部分,model这个商业对象需要实现以下功能:
1.通过数据库访问接口(即efframework的DBHelper)实现数据持久化(即保存到DBMS中)
2. 从数据库从提取某个商业对象的持久化数据并映射到商业对象实例。
3.实现商业逻辑,例如保存前的数据校验,其他model的关联更新等
在delphi完全面向对象的设计里,我们可以很容易的实现以上逻辑。
在面向业务层面,model需要提供以下几个操作接口:
1.提供公共属性对应用户输入栏位,这些栏位与DBMS中的table对应
2.提供一个save方法以相应用户的信息更新请求,如果更新失败则弹出错误
3.提供一个select方法,供调用者做model相关的查询。
model这部分的设计可以参考java的持久化框架,其中比较优秀的代表作是Hibernate。我在本框架中不打算耗费极大精力去做这个持久化框架。因为我设计这个框架的目的是为设计信息系统提供一个开发框架,如果有朋友已经实作了这样的框架并打算或者已经开源,也可以通知我,我参考下看看如何整合到efframework中来。在本框架中model部分目前只做了极度轻量化的实现,仅仅能与数据库做数据交换,框架没有提供自动model定义与数据库结构同步的实现,这就需要本框架的使用者自己维护model与数据表的同步变更。