目前正在设计一个COM+应用,对于要用户输入的基本信息,我准备用以下设计:
1.IRecord记录接口
IRecord = Interface
FTableName: string;
//功能:把对象转换成表中的数据,即把持久化对象转换成关系数据库中的记录
ObjToRelation(操作类型); //增加,修改,删除
end;
1.IManager中定义对记录的操作
IManager = interface
FRecords: TObjectList; //持久化对象列表 AddRecord;
DeleteRecord;\
UpdateRecord;
// 以上三个操作,只是对对象列表FRecords进行操作,而写到数据库中去,而是委托 IRecord.ObjToRelation()方法; GetDataSet; //取数据集,委托数据服务层的方法取数据,而不直接与数据库交互
MoveNext;
MoveLast;
...
end;现假设有一UserInfo表,则在业务层中将有两个类与之对应
TUserManager=class(TObject, IManager)
TUser = class(TObject, IRecord)
然后通过TUserManager来管理用户数据的增减等操作.即一个数据基础表对应一个容器类,与一记录类,通过容器类来控制数据操作.并且把一些属性和方法抽象到接口中,使容器类与记录类去实现接口.问题:有必要抽象出两个接口来吗?告别是记录类,感觉直接用一TUser类就行了.请各位有这方面经验的说说自己的看法.给小弟指点一下.
感谢
1.IRecord记录接口
IRecord = Interface
FTableName: string;
//功能:把对象转换成表中的数据,即把持久化对象转换成关系数据库中的记录
ObjToRelation(操作类型); //增加,修改,删除
end;
1.IManager中定义对记录的操作
IManager = interface
FRecords: TObjectList; //持久化对象列表 AddRecord;
DeleteRecord;\
UpdateRecord;
// 以上三个操作,只是对对象列表FRecords进行操作,而写到数据库中去,而是委托 IRecord.ObjToRelation()方法; GetDataSet; //取数据集,委托数据服务层的方法取数据,而不直接与数据库交互
MoveNext;
MoveLast;
...
end;现假设有一UserInfo表,则在业务层中将有两个类与之对应
TUserManager=class(TObject, IManager)
TUser = class(TObject, IRecord)
然后通过TUserManager来管理用户数据的增减等操作.即一个数据基础表对应一个容器类,与一记录类,通过容器类来控制数据操作.并且把一些属性和方法抽象到接口中,使容器类与记录类去实现接口.问题:有必要抽象出两个接口来吗?告别是记录类,感觉直接用一TUser类就行了.请各位有这方面经验的说说自己的看法.给小弟指点一下.
感谢
解决方案 »
- Delphi的SQL语法中有删除全部数据的吗?
- Delphi如何与oracle连接
- 关于超过255字符会SQLServer会自动截断的问题
- 请问如何得到 RichEdit 的可见区域的内容?
- 如何得到网络时间????
- 请问用delphi做报表打印图形时,怎么不支持gif文件格式?急急!
- 求使用odac调用oracle存储过程的方法和实例
- 有没有点击表头排序的listview控件?
- 请教,当FTP响应消息有多行文本时,如何判断
- 有一查询工具,欢迎大家使用。
- 装了delphi7,rave report怎么用?
- 请教在Delphi中使用ShellExecute运行另一个.EXE文件时如何不使程序继续执行,只有当执行的程序运行完成后才继续执行下面的语句?...
管理类做数据维护,记录类自己做逻辑处理。
感觉你这么烦麻一点,直接用个迭代模式还方便一些