freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ro中間層設(shè)計(jì)的方案(編輯修改稿)

2024-12-20 03:03 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 附 : 開始創(chuàng)建數(shù)據(jù)訪問類時(shí),用了抽象工廠模式 ,本來是考慮到,不同的 連接對(duì)象,會(huì)使用不同的數(shù)據(jù)感知控件訪問 。用抽象工廠,在使用不同方式訪問數(shù)據(jù)庫,可以配置不同的產(chǎn)品類。后因 BDE 已經(jīng)漸漸退出市場(chǎng)。因此沒對(duì)其進(jìn)行完善。 原始的設(shè)計(jì)也被保留了下來。 說明: TConnDBFactory 類 type TConnDBFactory = class(TPersistent) public function CreatorConnDB() :IConnDataBase。 virtual。 abstract。 end。 主要功能: 創(chuàng)建一個(gè) CreatorConnDB 得到一個(gè) IconnDataBase 接口,抽象方法,這里是抽象工廠的用法。 抽象工廠 創(chuàng)建一系列產(chǎn)品,產(chǎn)口都實(shí)現(xiàn) IconnDataBase 該接口,派生不同的工廠,創(chuàng)建不同的產(chǎn)品系統(tǒng)類型。 6) uConnDBFactory_SQLServer 工廠類單元 說明: TConnBDEDBFactory 類 主要功能: 從抽象 工廠 派生 ,創(chuàng)建不同的 產(chǎn)品系列 對(duì)象 , 即 TConnBDEDB_SQLServer 和TConnADODBFactory_SQLServer。 function () :IConnDataBase。 var connDB: TConnDB。 begin connDB := 。 Result := connDB。 end。 function () :IConnDataBase。 var connDB: TConnDB。 begin connDB := 。 Result := connDB。 end。 附: uConnDBFactory_ACCESSServer 工廠類 單元和 uConnDBFactory_Oralce 工廠類 單元和前面所述雷同。 元數(shù)據(jù)訪問 模塊 封裝介紹 1) uMPropList RTTL 實(shí)現(xiàn)類 單元 說明: TMPropList 類 主要功能: 1. 實(shí)現(xiàn) RTTL 信息 。 2. 對(duì) published 屬性字段的讀取。 3. 利用 GetProp 和 SetProp 等方法,實(shí)現(xiàn)對(duì)底層類屬性字段的讀取操作。 2) uDataTransferObjectFactory 元數(shù)據(jù) 注冊(cè)工廠 單元 說明: TRegDTOFactory 類 主要功能: 1. 對(duì)系統(tǒng)所有的元數(shù)據(jù)類 (TdataTransferObject 及派生類 )進(jìn)行注冊(cè) 。 2. 通過字符串,得到其已經(jīng)注冊(cè)的元數(shù)據(jù)的 Tclass. 3. initialization _RegDTOFactory := 。 在初始化時(shí)已經(jīng)創(chuàng)建該對(duì)象,該對(duì)象為全局對(duì)象,在系統(tǒng)退出時(shí),由操作系統(tǒng)回收 空間 。 使用方法: 所有的元數(shù)據(jù),都在系統(tǒng)初始化的時(shí)候進(jìn)行注冊(cè), 比如 TbillVO 類: initialization (TBillVO)。 注冊(cè)工廠對(duì)注冊(cè)的元數(shù)據(jù)進(jìn)行管理,查找,創(chuàng)建等。 3) uDataTransferObject 元數(shù)據(jù)類及元數(shù)據(jù)列表類 單元 說明: 元數(shù)據(jù) , 傳輸對(duì)象, 數(shù)據(jù)載體 簡(jiǎn)稱( DTO) , O/P Maping 中的數(shù)據(jù)實(shí)體。 對(duì)映數(shù)據(jù)庫的映射。 元數(shù)據(jù)類型必須 要 支持?jǐn)?shù)據(jù) 序列化功能和持久化功能 。 在三層或多層設(shè)計(jì)中,層與層之間傳輸?shù)木驮獢?shù)據(jù) (傳輸對(duì)象 ), 從而使系統(tǒng)的開發(fā),真正面向?qū)ο缶哂锌删S護(hù),易用性 ,數(shù) 據(jù)無關(guān)性, 無數(shù)據(jù)集處理異常等優(yōu)點(diǎn)。 序列化: 網(wǎng)絡(luò)中傳輸?shù)氖亲止?jié)流,我們需要把一個(gè)對(duì)象轉(zhuǎn)化成字節(jié)流,傳輸?shù)椒?wù)器端后,又需要再把字節(jié)流轉(zhuǎn)化成對(duì)象的技術(shù)。 持久化: 需要把一個(gè)對(duì)象實(shí)體存入到介質(zhì)的一種手段。 這里指(把一個(gè)對(duì)象存入 DB 數(shù)據(jù)庫中,或把 DB 數(shù)據(jù)庫表中數(shù)據(jù)轉(zhuǎn)化成一個(gè)對(duì)象的能力)。一個(gè)讀,一個(gè)寫。 數(shù)據(jù)持久化的原理: 怎么把一個(gè)對(duì)象持久化, 一般都需要語言的支持, 例如反射機(jī)制,動(dòng)態(tài)運(yùn)行時(shí)信息等,在 DELPHI 中 可以根據(jù)動(dòng)態(tài)運(yùn)行時(shí) ,獲取自己變量,能動(dòng)態(tài)獲得數(shù)據(jù)類型,存取數(shù)據(jù)的能力。 要設(shè)計(jì)一個(gè)通用 的底層 持久化對(duì)象往往是困難的, 因?yàn)樵谝粋€(gè)對(duì)象中,有可能它的本身一個(gè)變量就是其它的一個(gè)類,當(dāng)然這個(gè)類本身也必須要支持持久化,否則,該變量無法被持久化。 關(guān)鍵的實(shí)現(xiàn)是采用了遞歸調(diào)用的技術(shù),已不屬本方案的討論范圍,具體請(qǐng)考慮有關(guān)資料。 說明:該 單元 類設(shè)計(jì)較復(fù)雜 ,詳細(xì)說明如下: 1. TPersistentAdapter 類 : 主要功能: 實(shí)現(xiàn)了數(shù)據(jù)持久化接口的一個(gè)基類。 該類實(shí)現(xiàn)從 TROComplexType 派生,實(shí)現(xiàn)持久化功能 的基礎(chǔ)上, 對(duì)接口進(jìn)行封裝,從該類派生的對(duì)象, 可以不用實(shí)現(xiàn) QueryInterface 等幾個(gè)方法。另外加入 SetDestroyFlag 對(duì)接口的生命周期進(jìn)行控制。 如果調(diào)用 SetDestroyFlag 設(shè)置為真,則 用完接口之后,自動(dòng)釋放,不 再 受接口生命周期控制,有關(guān)生命周期問題請(qǐng)參考( COM 原理)。 使用說明: procedure SetDestroyFlag(b_Destroy: Boolean)。 stdcall。 設(shè)置為真。 2. TDataTransferObject 類: TDataTransferObject = class(TPersistentAdapter, IDataTransferObject) private PropList : TMPropList。 FFldProperty: TDTOProperty。 DTOSQL: TDTOSQL。 DTODisplay: TDTODisplay。 說明: 元數(shù)據(jù),傳輸對(duì)象,簡(jiǎn)稱( DTO)。多層應(yīng)用中,層與層之間傳輸?shù)膶?shí)體對(duì)象。 1. TMPropList: 底層 實(shí)現(xiàn) RTTL 功能 的一個(gè)輔助類 。 附:在 DTO 進(jìn)行序列化時(shí),并不會(huì) 實(shí)現(xiàn)該類的序列化。 2. TDTOProperty 類: 聲明如下: TDTOProperty = class(TPersistentAdapter) private FDTOType: TDTOInfoType。 //類型 (table, view) FMapName: String。 //名字 _Index: Integer。 //索引在 Grid 中的位置 published Property FIndex: Integer Read _Index Write _Index。 Property DTOType: TDTOInfoType Read FDTOType Write FDTOType。 Property MapName: String Read FMapName Write FMapName。 public constructor Create。 override。 destructor Destroy。 override。 end。 FDTOType: 標(biāo)識(shí)實(shí)體映射的類型 (table, view), FmapName: 映射的名字, _Index: 在 Grid 中的 索引,這里要詳細(xì)講一下, 這個(gè)索引 的概念, 我們假設(shè)從服務(wù)器端獲取一個(gè) TDTOList( 數(shù)據(jù)對(duì)象列表 ) , 而每個(gè)對(duì)象在 List 中都有自己的位置, 可能被刪除,新增, 但會(huì)不會(huì)和界面中的 Grid 一致呢, 不一致, 因此這個(gè)就是默認(rèn)更新界面索引用的,你可能會(huì)想,我點(diǎn)擊的時(shí)候就能判斷行列,干嘛用這個(gè) ,因?yàn)橛袝r(shí)候你可能會(huì)在程序內(nèi)部多次處理新增,刪除,操作,如此一來,整個(gè)數(shù)據(jù)就亂了。 一句話,就是由于 TDTOList 里面的 DTO 索引和 Grid 中的索引可能會(huì)不一致造成的。 附:在 DTO 進(jìn)行序列化時(shí),并不會(huì)實(shí)現(xiàn)該類的序列化。 3. TDTOSQL 類 聲明如下: TDTOSQL = class(TPersistentAdapter) private FVisSelectList: TStringList。 //隱藏生成 SQL 語句列表 (隱藏字段不生成 select 語句) FVisInsertList: TStringList。 //隱藏生成 SQL 語句列表 (隱藏字段不生成 Insert 語 句) FVisUpdateList: TStringList。 //隱藏生成 SQL 語句列表 (隱藏字段不生成 Update 語句) published Property VisSelectList: TStringList Read FVisSelectList Write FVisSelectList。 Property VisInsertList: TStringList Read FVisInsertList Write FVisInsertList。 Property VisUpdateList: TStringList Read FVisUpdateList Write FVisUpdateList。 public constructor Create。 override。 destructor Destroy。 override。 end。 功能說明: 該類可以在用代碼生成工具進(jìn)行配置的時(shí)候, 控制字段是否生成 SQL 語句, 可控制( Select 語句, Insert 語句, Delphi 語句)。 原因: 我們?cè)陂_發(fā)的時(shí)候,有些字段 , 比如自動(dòng)加 1 的字段, 我們 并不想使用這些字段。 因?yàn)樯蛇@些字段,可能造成 insert 失敗。 附:在 DTO 進(jìn)行序列化時(shí),并不會(huì)實(shí)現(xiàn)該類的序列化。 4. TDTODisplay 類 聲明如下: TDTODisplay = class(TPersistentAdapter) private FDTOCaptionList: TStringList。 //說明列表 FHideDTOList: TStringList。 //隱藏字段列表 (隱藏字段 不顯示界面 )。 FBindCtlList: TList。 //綁定控件 procedure RefVOCtlDisplay(pDTO: TDataTransferObject)。 function GetFldContent(pTO: TDataTransferObject。 i_j: Integer): String。 procedure DrawControlLabel(tmpCtl: TControl。 Caption: String)。 procedure DrawControlContent(tmpCtl: TControl。 Caption: String)。 published Property DTOCaptionList: TStringList Read FDTOCaptionList Write FDTOCaptionList。 Property HideDTOList: TStringList Read FHideDTOList Write FHideDTOList。 Property BindCtlList: TList Read FBindCtlList Write FBindCtlList。 public procedure FreeBindCtlList。 procedure BindControl(tmpCaptionCtl,tmpCtl: TControl。 fld: String)。 overload。 procedure BindControl(tmpCaptionCtl,tmpCtl: TControl。 fld, fldEx: String)。 overload。 public constructor Create。 override。 destructor Destroy。 override。 end。 功能介紹: TDTODisplay 是一個(gè)和 UI 顯示相關(guān)的類。 通過代碼生成工具, FDTOCaptionList 里面會(huì)自動(dòng)存放上所有的 Grid 的 Caption 的顯示,及需要隱藏的界面字段。 同時(shí), BindControl
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1