你们的数据物件中都要放入哪些东西?(200分)

  • 主题发起人 主题发起人 dadabox
  • 开始时间 开始时间
D

dadabox

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将数据实现物件化,那么一个物件中就有该物件的相关数据属性,比如一个订单物件就要
有订单号,客人,产品种类,订单数量等等,这些都是属于系统分析的环节中.我想问实现细节
里的一些问题.比如说上面的订单物件,除了上面的那些属性外,还需要哪些方法呢?需不需要
如同SAVE,Edit等等方法呢?
如果不需要,那么我怎么将我的数据从表中转到物件中,修改,保存时我又怎样将物件中的数
据存到数据表中.
若需要,应该怎么加呢?是不是应该先写一个基类,里面加入这些SAVE,Edit等等的虚函数,再
在子类中具体加入,但应该加入哪些方法呢?
小弟想了许久,也有一点概念和框架,但在这细节问题上有些不太了解.哪位大侠能否指点一
二?能不能给出一些提示?例如基类中要做到什么,有哪些属性和方法,子类中又要做到什么?
要有哪些属性和方法?若大侠们能出手,小弟也少走点弯路,我地处偏辟,身边也没有人能教我,
只能在这儿能找到一些解答.小弟天资笨挫,若能以部分源码赐教,最好!谢谢!
 
粗粗地看了一下。
如果你使用MTS开发分布式应用系统,关于这个问题,我可以给你一点点建议:
如果实现中存在订单对象,那么我建议你开发系统时,建立两个MTS对象:
1、存取订单对象数据的MTS Data Model。
在这个模块中放入ADO数据控件(如果你使用ADO的话)。
2、控制上述对象的MTS Object。
建立上述对象,并实现存取数据的方法如GetData,UpdateData等。但一般不需要实现
Edit之类的方法。
其实划分企业对象是系统分析员的事,在我看来比编程更复杂,更烦人,也更有成就
感。
你可以看看李维的书,决对物有所值。
Gook luck.
 
你要先找出一些物件共用的属性和方法出来,比如说,像Up_User,Up_Date这种每个表都需要
的资料,你就要放到基类中,修改或保存的时候,就直接在基类中做了,而若Save,Delete等等,
你可以在基类中做为虚拟方法,如Delete,你在基类中就可以加入一个提示框,免得你在实际
调用时还要一个一个来写.说白了,就是先好好的系统分析,找出共用点,将那些东东放到基类
中,再根据企业流程找出要哪些物件,再根据物件所需建立数据表,你可以将表的栏位属性放
到物件中一一对应,也可以直接用DataSource,用FieldByName一一对应.我是经常懒得写多的,
所以一般的我都用DataSource了,不知别人是怎样做,愿向高手请教!我也很关注这类问题.
一个小例子.
type TKObject=class(TObject)
private
sUp_User:string;
dUp_Date:TDateTime;
protected

public
DataSource:TDataSource;
procedure Save;virtual;
procedure Delete;virtual;
end;

procedure TKObject.Delete;
begin
if DataSource.DataSet=nil then abort;
if MessageDlg('Are you sure delete this data?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then abort;
end;

procedure TKObject.Save;
begin
if DataSource.DataSet=nil then abort;
if (DataSource.State=dsEdit) or (DataSource.State=dsInsert) then
begin
DataSource.DataSet.FieldByName('Up_User').AsString:=sUp_User;
DataSource.DataSet.FieldByName('Up_Date').AsDateTime:=dUp_Date;
end
else abort;
end;
...
 
谢谢,大伙儿接着来!
 
在《delphi5程序员指南》中有一个非常好的例子,和你目前所说的情况也很接近。
如果《delphi5程序员指南》中没有,那么 4 中一定有。
建议你看一下,可解你心中疑团。也建议大家看一下,我觉得在delphi中开发数据库
软件就应该是那样子的。
 
expect,請問有電子書嗎﹖哪有下﹖代碼﹖
 
nihao.dlut.edu.cu
点电子书库
 
to dhl2001﹐你說那網址怎么提示說找不到﹖
 
請各位還是好好幫幫忙吧﹐要不我就結束算了。怎么這類問題總是回答的人少呢﹖
 
多人接受答案了。
 
后退
顶部