亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi中實現界面與業務邏輯的分離

2019-11-18 18:17:57
字體:
來源:轉載
供稿:網友

Delphi中實現界面與業務邏輯的分離

                                                       J雪(zhuam)ndeveloper@sina.com

在做Delphi軟件開發之前,我從事java軟件的開發工作,從Java開源社區我學到了很多軟件的設計理想,這也許就是我從Java那里得到的回報啊! 開闊了眼界!

最近的項目是用Delphi開發,所以我又看起了Delphi,一個月的時間里我看了差不多看了4本Delphi方面書籍,在做Delphi項目的時候我更是用DELPHI的語法,JAVA的思想來進行軟件的開發與設計,感覺有些累!啊,閑話少說啊,進入正題吧!

DELPHI是一個快速軟件開發的IDE,通常的PRogrammer 都是先畫View(界面) ,然后在在相應的事件里面書寫Source Code,看事例:

1、比如我要向數據庫中插入一條記錄,通常的做法是這樣吧!

SQL Example:  Insert   Into   ExampleTable1 (Field1,Field2,Field3) Values(Values1,Values2,Values3)

現在假設這個DELPHI窗體上有三個TEXT控件,Name分別為 Frist,Second,Three

下面我用三種不同方法將數據插入到數據庫中:

1、直接插入
client  ---------->  Database

Insert   Into   ExampleTable1 (Field1,Field2,Field3) Values(Frist.text,Second.text,Three.text)

2、間接插入
 client  ---(Text傳遞)--->  dataClass ------->  Database

意思是先將該窗體數據保存到一個數據類中去,然后在由用戶從這個數據類中取數據,將這些數據
傳到數據庫中去

注意:
窗體控件是直接通過TEXT將數據存儲到(dataClass)數據類中去的。
這個dataClass只是用于存儲數據狀態的,里面全是屬性,沒有業務邏輯的實現!

如下:
{---------------------------------------------
  author:zhuam
  date:2004/09/04
  type:class
  property:all AssociatorRunBean Information Set Mothed
  descripte: 用于保存會員的行駛證信息 ,
-----------------------------------------------}
type
  TAssociatorRunBean=class(TObject)
  private
    FKiloMetre: Double;
    FCarNumber: string;
    FNumber17: string;
    FCarColor: string;
    FAssociatorID: string;
    FCarCapacity: string;
    FFrameNumber: string;
    FEngineNumber: string;
    FAvailabilityDate: TDate;
    FRegisterDate: TDate;
    FBackPicture:TImage;
    FFrontPicture: TImage;
    FLeftPicture: TImage;
    FRightPicture: TImage;
    function getBackPicture: TImage;
    function getFrontPicture: TImage;
    function getLeftPicture: TImage;
    function getRightPicture: TImage;
    procedure setAssociatorID(const Value: string);
    procedure setAvailabilityDate(const Value: TDate);
    procedure setBackPicture(const Value: TImage);
    procedure setCarCapacity(const Value: string);
    procedure setCarColor(const Value: string);
    procedure setCarNumber(const Value: string);
    procedure setEngineNumber(const Value: string);
    procedure setFrameNumber(const Value: string);
    procedure setFrontPicture(const Value: TImage);
    procedure setKiloMetre(const Value: Double);
    procedure setLeftPicture(const Value: TImage);
    procedure setNumber17(const Value: string);
    procedure setRegisterDate(const Value: TDate);
    procedure setRightPicture(const Value: TImage);
  public
    constructor create;
    destructor destroy;override;
    property  AssociatorID:string read FAssociatorID write setAssociatorID;    //會員號碼
    property  CarNumber:string read FCarNumber write setCarNumber;             //車牌號碼
    property  CarColor:string read FCarColor write setCarColor;                //汽車顏色
    property  CarMode:string read FCarColor write setCarColor;                 //車型
    property  EngineNumber:string read FEngineNumber write setEngineNumber;    //發動機號碼
    property  FrameNumber:string read FFrameNumber write setFrameNumber;       //車架號
    property  CarCapacity:string read FCarCapacity write setCarCapacity;       //排量
    property  Number17:string read FNumber17 write setNumber17;                //17位號
    property  KiloMetre:Double read FKiloMetre write setKiloMetre;             //公里數
    property  RegisterDate:TDate read FRegisterDate write setRegisterDate;     //注冊日期
    property  AvailabilityDate:TDate read FAvailabilityDate write setAvailabilityDate; //有效日期
    property  FrontPicture:TImage read getFrontPicture write setFrontPicture;
    property  BackPicture:TImage read getBackPicture write setBackPicture;
    property  LeftPicture:TImage read getLeftPicture write setLeftPicture;
    property  RightPicture:TImage read getRightPicture write setRightPicture;

end;

Insert   Into   ExampleTable1 (Field1,Field2,Field3) Values(AssociatorRunBean.Frist,AssociatorRunBean.Second,AssociatorRunBean.text)

3、間接插入
 client  ---(自定義property傳遞)--->  dataClass ------->  Database

意思是先將該窗體數據保存到一個數據類中去,然后在由用戶從這個數據類中取數據,將這些數據
傳到數據庫中去

注意:
窗體控件是直接通過的自定義property將數據存儲到(dataClass)數據類中去的。
這個dataClass只是用于存儲數據狀態的,里面全是屬性,沒有業務邏輯的實現!

Insert   Into   ExampleTable1 (Field1,Field2,Field3) Values(AssociatorRunBean.Frist,AssociatorRunBean.Second,AssociatorRunBean.text)

說到這里有人會問我,這樣實現有什么意義哩!細心的同志也許已經有所察覺?。?BR>這正是完成Delphi界面與業務邏輯的分離的一種手段啊

 

 

 

 

 

 

 


上一篇:用Delphi對SQL-DMO進行封裝的一種實現

下一篇:Delphi的編碼規范

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久激情| 91免费国产视频| 少妇高潮久久久久久潘金莲| 国产亚洲免费的视频看| 亚洲天堂日韩电影| 国产成人一区三区| 久热精品视频在线免费观看| 欧美大全免费观看电视剧大泉洋| 国产精品自拍视频| 亚洲精品aⅴ中文字幕乱码| 亚洲情综合五月天| 欧美日韩另类视频| 欧美高清在线播放| 国产一区二区三区视频在线观看| 国产久一一精品| 欧美在线视频免费播放| 国产在线98福利播放视频| 国产成人亚洲综合91| 国产精品成人一区二区| 亚洲黄页网在线观看| 亚洲第一天堂av| 欧美精品激情在线观看| 午夜精品久久久久久久白皮肤| 成人黄色免费看| 国产精品久久在线观看| 国产精品综合不卡av| 欧美精品videosex牲欧美| 琪琪亚洲精品午夜在线| 91夜夜揉人人捏人人添红杏| 国产精品揄拍一区二区| 青草青草久热精品视频在线网站| 色爱av美腿丝袜综合粉嫩av| 日韩经典第一页| 亚洲黄色免费三级| 日韩69视频在线观看| 日韩欧美在线视频观看| 欧美激情xxxxx| 国产中文欧美精品| 国语自产精品视频在线看| 亚洲久久久久久久久久久| 91超碰中文字幕久久精品| 欧美性猛交xxxx富婆| 精品一区二区三区四区| 国产a∨精品一区二区三区不卡| 亚洲最大中文字幕| 日韩精品极品视频免费观看| 国产成人高潮免费观看精品| 日韩av免费在线| 亚州欧美日韩中文视频| 欧美精品久久一区二区| 青青a在线精品免费观看| 久久久久久久97| 成人精品网站在线观看| 亚洲香蕉伊综合在人在线视看| 精品毛片网大全| 精品中文字幕久久久久久| 日韩欧美大尺度| 中文字幕精品国产| 日本精品免费观看| 97在线视频免费| 日韩黄色高清视频| 色综合久久久久久中文网| 久久影视三级福利片| 岛国av一区二区在线在线观看| 亚洲一区二区在线播放| 欧美影院成年免费版| 日韩欧美国产黄色| 日韩av电影中文字幕| 亚洲成人黄色在线| 亚洲电影免费观看高清完整版在线| 国产视频精品在线| 久久精品色欧美aⅴ一区二区| 日韩成人xxxx| 国产色视频一区| 日韩中文字幕网站| 欧美日韩国产一区二区三区| 久久不射电影网| 日韩av资源在线播放| 欧美性资源免费| 2023亚洲男人天堂| 国产精品国产自产拍高清av水多| 精品免费在线观看| 一本大道香蕉久在线播放29| 久热精品视频在线| 中文字幕在线观看日韩| 欧美日韩国产999| 国产精品成人一区二区| 91影院在线免费观看视频| 国产精品女人网站| 色播久久人人爽人人爽人人片视av| 中文国产亚洲喷潮| 亚洲人成在线电影| 国产成人精品最新| www.日韩免费| 2018中文字幕一区二区三区| 国产精品毛片a∨一区二区三区|国| 国产极品精品在线观看| 国产精品99久久久久久www| 亚洲精品国产精品自产a区红杏吧| 欧美第一黄色网| 在线日韩精品视频| 国产成人自拍视频在线观看| 国产精自产拍久久久久久蜜| 日韩电视剧免费观看网站| 日韩在线高清视频| 日韩电视剧在线观看免费网站| 日韩免费观看视频| 久久精品视频播放| 亚洲自拍偷拍一区| 久久久精品999| 97在线视频国产| 不卡av日日日| 亚洲电影成人av99爱色| 中日韩美女免费视频网站在线观看| 欧美有码在线视频| 亚洲综合在线小说| 久久久久久12| 欧美日韩在线第一页| www.亚洲一区| 亚洲精品国产精品国自产观看浪潮| 国产精品久久久久一区二区| 亚洲电影免费在线观看| www亚洲欧美| 成人黄色片在线| 亚洲一区二区三区四区在线播放| 日韩成人在线电影网| 国产999在线观看| 亚洲女同性videos| 亚洲电影免费观看高清完整版| 91国自产精品中文字幕亚洲| 91po在线观看91精品国产性色| 亚洲人成五月天| 欧美日韩加勒比精品一区| 2019中文在线观看| 中文字幕亚洲一区| 国产深夜精品福利| 日韩免费av片在线观看| 欧美肥老妇视频| 日韩视频亚洲视频| 欧美福利视频网站| 久久久久免费精品国产| 久久久久久久久中文字幕| 欧美一级大片在线观看| 精品久久久精品| 国产日产久久高清欧美一区| 日韩免费在线电影| 69av视频在线播放| 色偷偷888欧美精品久久久| 日本亚洲欧洲色α| 日韩有码在线视频| 亚洲成人黄色在线| 国产精品99久久久久久久久久久久| 亚洲女性裸体视频| 国产精品一区二区在线| 亚洲电影在线看| 91久久久久久久久久久久久| 国产精品第七影院| 丝袜亚洲欧美日韩综合| 成人情趣片在线观看免费| 69久久夜色精品国产7777| 欧美日韩精品在线视频| 亚洲第一区第一页| 中文字幕国内精品| 欧美激情国产日韩精品一区18|