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

正文內(nèi)容

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

2025-04-14 13:30 本頁面


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