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

正文內(nèi)容

聯(lián)創(chuàng)國(guó)際科技公司《uml建模培訓(xùn)講義》-文庫(kù)吧

2025-04-14 13:30 本頁(yè)面


【正文】 該通過(guò)什么方式,直接的,或間接的,向這些客戶提供服務(wù)? ? 層的部署和層間交互 對(duì)于一個(gè)多層的應(yīng)用軟件系統(tǒng)來(lái)說(shuō),尤其是大型的應(yīng)用軟件系統(tǒng),通常需要把不同的部分部署在不同的邏輯或物理設(shè)備上。特別是一些基于 Web的應(yīng)用軟件系統(tǒng),其部署工作將涉及到 Web服務(wù)器、組件服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器等不同的服務(wù)設(shè)備。在進(jìn)行應(yīng)用軟件架構(gòu)的設(shè)計(jì)的時(shí)候,必須考慮各種不同的部署方案。 LINKAGE 完整的結(jié)構(gòu) LINKAGE 數(shù)據(jù)實(shí)體的表示 ? 應(yīng)用軟件系統(tǒng),從本質(zhì)上來(lái)說(shuō),是計(jì)算機(jī)對(duì)現(xiàn)實(shí)世界的模擬?,F(xiàn)實(shí)世界中的實(shí)體對(duì)象,在軟件系統(tǒng)中,表現(xiàn)為需要處理的數(shù)據(jù)。在面向?qū)ο蟮南到y(tǒng)中,這是通過(guò) “ 類(lèi) ” 和 “ 對(duì)象 ” 來(lái)表示的。 ? 參考著名的 “ MVC”模式,類(lèi)可以分成實(shí)體類(lèi)( M)、控制類(lèi)( C)、和邊界類(lèi)( V),分別代表了實(shí)體對(duì)象、控制和界面顯示。系統(tǒng)中需要處理的數(shù)據(jù),在面向?qū)ο蟮南到y(tǒng)中,屬于實(shí)體類(lèi)部分。 ? 在考慮數(shù)據(jù)實(shí)體層的設(shè)計(jì)策略的時(shí)候,我們需要把握以下要點(diǎn): – 一致的數(shù)據(jù)表示方式。在一個(gè)系統(tǒng)中,數(shù)據(jù)的表示方式必須盡可能統(tǒng)一,同時(shí),在處理單個(gè)數(shù)據(jù)和多個(gè)數(shù)據(jù)的時(shí)候,處理方式盡可能一致。 – 因?yàn)閿?shù)據(jù)通常是需要存儲(chǔ)到數(shù)據(jù)庫(kù)中,因此,良好的映射方法是必需的。 – 處理好對(duì)象的粒度,即所謂的粗粒度對(duì)象、細(xì)粒度對(duì)象。 LINKAGE 一般例子 ? 一個(gè)倉(cāng)庫(kù)中的產(chǎn)品( Product) public class Product { public string Name。 //名稱(chēng) public decimal Price。 //價(jià)格 public int Count。 //數(shù)量 } 可以按照如下方法使用 Product類(lèi): Product p=new Product()。 //…… 處理 Product LINKAGE 一般例子 ? 一張入庫(kù)單可以使用如下定義 : public class Form { public string ID。 //入庫(kù)單編號(hào) public DateTime AddTime。 //入庫(kù)時(shí)間 public FormDetail[] FormDetails。 //入庫(kù)單明細(xì) } public class FormDetail { public Product InProduct。 //入庫(kù)產(chǎn)品 public int Count。 //入庫(kù)數(shù)量 } LINKAGE 對(duì)象集合的表示方法 ? 數(shù)組表示的方法,也可以使用容器來(lái),需要一個(gè)類(lèi)型轉(zhuǎn)換的操作 ? ObjectCollection方法。這個(gè)方法同上面的方法類(lèi)似,不同之處在于,為每個(gè)實(shí)體類(lèi)設(shè)計(jì)一個(gè) Collection類(lèi)。例如,可以為 FormDetail設(shè)計(jì)一個(gè)FormDetailsCollection類(lèi) (C): public class FormDetailsCollection: ArrayList { public void Add(FormDetail detail) { (detail)。 } public new FormDetail this[int nIndex] { get{ return (FormDetail)base[nIndex]。 } } } ? 數(shù)據(jù)集的表示方法。 采用這種方法,通常是直接把從數(shù)據(jù)庫(kù)查詢(xún)中獲取的數(shù)據(jù)集作為數(shù)據(jù)處理對(duì)象 LINKAGE J2EE的方法 ? EntityBean – BMP – CMP ? 使用 XML來(lái)映射數(shù)據(jù)庫(kù) LINKAGE JDO的方法 ? 提供了一個(gè)相對(duì) “ 輕量級(jí) ” 的方案 ? 采用一般的做法,編寫(xiě)實(shí)體類(lèi) ? 通過(guò)一些強(qiáng)化器對(duì)這些類(lèi)進(jìn)行強(qiáng)化,以使其符合JDO的規(guī)范 ? 通過(guò) PersistenceManager來(lái)實(shí)現(xiàn)對(duì)象的持久化儲(chǔ)存 LINKAGE Websharp的方法 ? EntityData類(lèi) ? 通過(guò) XML配置文件的方式同數(shù)據(jù)庫(kù)映射 ? 可以通過(guò)如下方式取得一個(gè)實(shí)體對(duì)象: EntityData Customer=EntityDataManager. GetEmptyEntity(“Customer”)。 ? 可以通過(guò)如下方式來(lái)訪問(wèn)這個(gè)對(duì)象的屬性: string CustomerID=Customer[“CustomerID”] ? – EntityClassBase類(lèi) – PersistanceManager接口 – TransactionManager接口 LINKAGE 數(shù)據(jù)的存取 ? 目的是持久化保存對(duì)象 ? 存取的對(duì)象,可以是數(shù)據(jù)庫(kù)、普通文件、 XML,其他任何方式 ? 通過(guò)框架來(lái)執(zhí)行能夠節(jié)省開(kāi)發(fā)成本 ? 在這個(gè)部分,以下兩個(gè)部分的類(lèi)會(huì)顯得特別重要: ? 對(duì)象 ——關(guān)系映射的分析類(lèi),能夠通過(guò)既定的方案完成對(duì)象 ——關(guān)系的映射,確定數(shù)據(jù)存取方案 ? 數(shù)據(jù)庫(kù)操縱類(lèi):根據(jù)映射關(guān)系,將數(shù)據(jù)準(zhǔn)確的存儲(chǔ)到數(shù)據(jù)庫(kù)中,并且封裝不同數(shù)據(jù)庫(kù)之間的差異。 LINKAGE 過(guò)程 客戶程序 數(shù)據(jù)存取訪問(wèn)接口 O R 分析類(lèi) 數(shù)據(jù)庫(kù)訪問(wèn)類(lèi)請(qǐng)求存儲(chǔ)對(duì)象請(qǐng)求分析映射關(guān)系返回分析結(jié)果請(qǐng)求保存數(shù)據(jù)保存LINKAGE 實(shí)例 ? 在 J2EE中的 CMP ? JDO中的 PersistenceManager Customer customer=new Customer(…… )。 PersistenceManager PM=(…… )。 (customer)。 ? Websharp 的 IEntityDAO 接口 public class CustomerEntityDAO:AbstractSingleTableDAO Customer customer=...... using(CustomerEntityDAO CDO=new CustomerEntityDAO()) { (customer)。 } LINKAGE 業(yè)務(wù)邏輯的處理 ? 業(yè)務(wù)邏輯表現(xiàn)為對(duì)象之間的交互 ? 基本上沒(méi)有辦法提供統(tǒng)一的模式 ? 但是,采用基本一致的策略是非常必要的 ? 在業(yè)務(wù)邏輯處理中,處理的應(yīng)該是對(duì)象,而不是直接同數(shù)據(jù)庫(kù)打交道 ? 事務(wù)的處理 – 基于數(shù)據(jù)庫(kù)連接的事務(wù) – 專(zhuān)用的事務(wù)處理服務(wù): J2EE的容器, COM+ – 性能比較 LINKAGE public void StoreIntoWarehouse(EntityData insertForm) { (FormDetail)。 TransactionManager transManager=new TransactionManager()。 ProductEntityDAO productDAO=new ProductEntityDAO(true)。 FormEntityDAO formDAO=new FormEntityDAO(true)。 try { if(0) do { string productID=insertForm[ProductID].ToString()。 decimal inCount=(InCount)。 EntityData product=(productID)。 product[CurrentCount]=(CurrentCount)+inCount。 (new TransactionManagedFunction(),product)。 }while(())。 (new TransactionManagedFunction(),insertForm)。 ()。 } catch(Exception ee) { throw ee。 } finally { ()。 ()。 } } LINKAGE 業(yè)務(wù)外觀層 ? 隔離系統(tǒng)功能的提供者和使用者 ? 作為后臺(tái)邏輯處理和前端用戶界面的緩沖區(qū) ? 將用戶界面和系統(tǒng)業(yè)務(wù)邏輯處理分開(kāi),當(dāng)業(yè)務(wù)邏輯發(fā)生變化時(shí),不用修改客戶端程序 ? 使同一個(gè)業(yè)務(wù)邏輯能夠處理不同的客戶端請(qǐng)求。例如,可以將 Facade設(shè)計(jì)成 Web Service ? 作為系統(tǒng)不同模塊之間的調(diào)用接口: Facade設(shè)計(jì)模式 ? 有利于項(xiàng)目團(tuán)隊(duì)的分工協(xié)作。 ? 業(yè)務(wù)外觀層的代碼框架,在系統(tǒng)分析和設(shè)計(jì)完成后就可以完成,相當(dāng)于在界面設(shè)計(jì)人員和邏輯設(shè)計(jì)人員之間簽訂了一個(gè)協(xié)議 ? 雖然沒(méi)有實(shí)現(xiàn)任何邏輯,但使系統(tǒng)的開(kāi)發(fā)更加有條理,更加簡(jiǎn)明 ? “ 任何問(wèn)題,都可以通過(guò)引入一個(gè)中間層來(lái)得到簡(jiǎn)化 ” 。 LINKAGE 剪裁和取舍 ? 剪裁的必要 ? 數(shù)據(jù)實(shí)體層和實(shí)體控制層無(wú)法裁減 ? 如果系統(tǒng)沒(méi)有復(fù)雜的業(yè)務(wù)邏輯,而只是一些數(shù)據(jù)的操作,或者業(yè)務(wù)邏輯特別少,那么,可以省略業(yè)務(wù)邏輯層,而將相關(guān)的功能移至實(shí)體控制層。 ? 如果不考慮多種客戶端的情況,也不考慮分布式部署的問(wèn)題,系統(tǒng)的模塊又很少,不會(huì)產(chǎn)生模塊間緊耦合的情況,那么,可以不使用業(yè)務(wù)外觀層,而讓用戶界面程序直接訪問(wèn)業(yè)務(wù)功能。 LINKAGE 回顧 ? 目的是提高軟件開(kāi)發(fā)的效率和軟件質(zhì)量 ? 把不必要的、重
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1