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

首頁 > 學院 > 開發設計 > 正文

J2EE體系結構設計(2)

2019-11-18 12:27:29
字體:
來源:轉載
供稿:網友

  當底層的數據存儲可能會變化的時候,開發人員可以采用抽象代理的方法來實現數據訪問對象;抽象代理的方法會創建一些虛擬的數據訪問對象代理和各種類型的實際數據訪問對象代理,每種對象對應一種持久性存儲介質的實現,一旦組件得到這些代理,就可以利用來創建需要使用的數據訪問對象。
  
  圖11給出了這種情況的類圖。該類圖表示了一個基礎的數據訪問對象代理,它是一個抽象類,被其他一些實際的數據訪問對象代理繼續以支持特定的數據訪問函數;用戶可以得到一個實際的數據訪問對象,并利用它來創建需要的數據訪問對象而訪問相關的數據,每一個實際的數據訪問對象都負責建立對于數據源的連接,并得到和治理所支持的業務數據。
  
 J2EE體系結構設計(2)(圖一)


  
圖11 抽象代理使用DAO

  
  下圖12是這種情況下的序列圖。
  
 J2EE體系結構設計(2)(圖二)

  
圖12抽象代理使用DAO序列圖

  
  這種設計模式的優勢:
  
  透明性好。業務對象可以在不知道數據源實現細節的情況下訪問數據。由于一切數據訪問細節被數據訪問對象所隱藏,所以這種訪問過程是透明的。
  可移植性好。在應用系統中添加數據訪問對象,可以使得前者能夠很方便地移植到另外一種數據庫實現上。業務對象與數據實現是隔離的,所以在移植過程中,僅僅對數據訪問對象進行一些變化即可。
  減少業務對象的代碼復雜度。由于數據訪問對象可以治理所有的數據訪問復雜細節,這也就簡化了業務模塊和其他數據客戶的代碼。同時也提高了應用系統的整體可讀性和開發率。
  集中處理所有數據訪問。由于所有的數據訪問操作都移交給數據訪問對象,這樣應用系統其他部分就與數據訪問實現隔離開來,而全部相關操作都與數據訪問對象集中處理,這樣也使得相關操作更加輕易被維護和治理。
  這種設計模式的缺陷:
  
  對于容器治理的持久性不能利用。假如EJB容器采取容器治理的方式,那么所有對于持久性數據存儲的治理都由容器負責。這樣的話應用系統就無需實現數據訪問對象了,因為應用服務將透明地提供這一功能。
  添加了額外的層面。數據訪問對象在數據用戶和數據源之間添加了一個層面,也就增加了一些額外的設計和實現的負擔。當然,我們認為它是物有所值的。
  總之,在開發人員選擇不同模式的時候,應該注重,一定的模式對應于一定的應用層次。比如說,與視圖和顯示相關的模式就是在Web層應用的。而一些與業務邏輯控制相關的模式則是與EJB層次相關的。另外一些關于讀取數據和分派操作的模式則適用于不同的層次之間。
  
  7、值對象或傳輸對象
  
  值對象(value object)模式通過減少分布式通信的消息而促進數據的交換,通常這里所指的通信是在Web層和EJB層之間。在一個遠程調用中,一個單一值對象可以被用來取出一系列相關數據并提供給客戶。
  
  這種設計模式的出現是基于客戶需要與ejb大量地交換數據的情況。具體來說,在J2EE平臺中,應用系統通常將服務器端的程序組件實現為會話bean和實體bean,而這些組件的部分方法則需要將數據返回給客戶;這種情況下,通常一個用戶會重復調用相關方法多次,直到它得到相關信息,應該注重的是,多數情況這些方法調用的目的都是為了取得單一的信息,例如用戶名或者用戶地址等。
  
  顯而易見,在J2EE平臺上,這種調用基本上都是來自遠程的。也就是說,用戶多次調用相應的方法會給Web帶來極大的負擔,即使用戶和EJB容器加載相同的JVM、OS和計算機上運行EJB程序,由于方法調用被缺省地認為是遠程任務,所以這種問題依然存在。
  
  由于以上所提到的問題,在遠程方法的調用次數增加的時候,相關的應用程序性能將會有很大的下降,因此利用多次方法調用而取得單一的信息是非常低效的;在這種情況,J2EE的研究人員建議使用傳輸對象來包含所有的程序數據,即每次方法調用可以發送和接收這個傳輸對象;當用戶向EJB發出對于程序數據的請求時,EJB會創建這個傳輸對象,將它的各個域賦以相關的數值,并將整個對象傳送給用戶。
  
  當EJB使用傳輸對象的時候,用戶可以通過僅僅一次方法調用來取得整個對象,而不是使用多次方法調用以得到對象中每個域的數值;由于傳輸對象是通過值傳遞而交送給用戶的,所以所有對于該傳輸對象的調用或取值都是本地調用,而不是遠程方法調用。不過需要注重的是,這個傳輸對象必須具有對應于每個屬性的訪問方法,或者將所有屬性都設為公共的。
  
  類圖13表示了傳輸對象模式的體系結構。
  
 J2EE體系結構設計(2)(圖三)

  
圖13 傳輸對象類圖

  
  在圖13中,傳輸對象首先在EJB中創建,然后返回給遠程客戶;當然,傳輸對象也可以根據需要融合其他的設計模式。
  
  圖14顯示了傳輸對象模式中的參與模塊和它們之間的交互。
  
 J2EE體系結構設計(2)(圖四)

  
圖14 傳輸對象序列圖

  
  下面我們說明一下傳輸對象模式的各個參與模塊:
  
  (1)客戶(Client)??蛻舸砹薊JB所提供服務的使用者,通常是運行于用戶終端的應用程序。
  
  (2)業務對象。業務對象表示在一個模式中由會話bean、實體bean或數據訪問對象(Data access Object)實現的角色。業務對象通常負責創建傳輸對象,并根據請求將其傳送到相關的用戶;業務對象也可以從用戶中取得一個傳輸對象格式的數據,并應用這些數據來執行一些更新。
  
  (3)傳輸對象。傳輸對象是一個可序列化的java對象。在這個對象的類中,通常會有一個包含所有域的構造函數,用來創建這個傳輸對象。
  
  這個傳輸對象中的成員變量基本都被定義為公共,從而無需為它們提供相關的訪問方法。當然假如存在一定安全的需要,相關的成員變量也可以設為保護或私有,并且給定各自的訪問方法。由此可見,傳輸對象的設計是隨著應用系統的需要不同而改變的,是否將對象中的成員變量設為公共,或提供一定的訪問方法,將是一個很重要的設計問題。
  
  通常在實現這個模式時,最多采取的是可更新的傳輸對象策略和多傳輸對象策略?! ≡诳筛碌膫鬏攲ο蟛呗灾?,傳輸對象不僅可以從服務于用戶的業務對象中取得相關信息和數據,還可以從業務對象中得到用戶對于數據所需要進行的改變。
  
  圖15以類圖表的形式表明了業務對象和傳輸對象之間的關系。
  
 J2EE體系結構設計(2)(圖五)

  
圖15 可更新傳輸對象類圖

  
  業務對象創建了傳輸對象。而用戶通過訪問業務對象,既得到了所需的信息,也對相關數據做出了一定的修改;為了能夠使得用戶可以修改業務對象各個域的取值,這個對象必須提供一定的變值方法,而出于對Web負擔的考慮,業務對象所提供的方法最好以傳輸對象為參數。相應地,這些方法可以去調用傳輸對象所提供的方法,來設置傳輸對象的各個成員變量的取值;同時在傳輸對象的方法中,我們也可以植入數據驗證和完整性檢查的邏輯,這樣在用戶從業務對象的方法得到傳輸對象時,可以直接調用傳輸對象的成員方法進行本地數據訪問,當然這種本地數據訪問不會影響到業務對象。
  
  當用戶調用業務對象的變值方法時,該方法會將用戶端的傳輸對象序列化,再將它發送給業務對象;業務對象接收到更新的傳輸對象,便將這些更新寫回到自己的對象拷貝中去;  這里需要說明的是,上面提到的寫回只是涉及到被更新的變量,而不是全部變量的寫回,因此我們需要在傳輸對象中另設置一個變量,來指定哪些成員變量被用戶更新過,這也就使得這種模式的設計相對復雜,開發人員需要考慮同步化和版本控制的問題。
  
  圖16顯示了這個更新過程的序列圖。
  
 J2EE體系結構設計(2)(圖六)

  
圖16 可更新傳輸對象序列圖

  
  多傳輸對象的方法是指一個單一的業務對象可以根據用戶請求制造多個不同的傳輸對象。也就是說,業務對象和它所創建的傳輸對象保持一對多的關系。類圖17表示了這種實現方法的各個參與模塊以及它們之間的調用關系。
  
 J2EE體系結構設計(2)(圖七)

  
圖17 多傳輸對象類圖

  
  當一個用戶需要A類型的傳輸對象時,他會激活相關EJB的getDataA()方法來取得傳輸對象A;當他需要B類型的傳輸對象時,他會激活getDataB()方法來獲取傳輸對象B;依此類推。序列圖18表示了這一過程。
  
 J2EE體系結構設計(2)(圖八)

  
圖18 多傳輸對象序列圖

  
  使用這種設計模式,應用系統的實體bean及其遠程接口會變得十分簡單。實體bean中無需再為每一個成員變量都實現一個set()和get()方法,并在遠程接口中實現相應的定義。用戶無需再進行多次的方法調用來取得信息和數據,所需要的只是一次方法調用以獲得整個傳輸對象。當然這里需要考慮Web負擔和大量數據一次傳輸的權衡。開發人員可以根據不同的需要來選擇不同的實現方法。
  
  如上所述,用戶和實體bean之間可以通過在一次方法調用中使用傳輸對象而交換所有的數據,也就是說傳輸對象作為數據載體工作,并減少了遠程的方法調用,從而大大減輕了Web負擔。通過使用傳輸對象的方法,我們也將有可能減少實體bean和其傳輸對象間的代碼重復。不過在使用可更新的傳輸對象方法時,用戶可以修改其本地的傳輸對象,之后再將其傳送回業務對

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩中文字幕| 欧美午夜激情小视频| 日韩在线观看免费全| 色噜噜狠狠狠综合曰曰曰| 久久久人成影片一区二区三区观看| 欧美激情精品久久久久久黑人| 日韩女优人人人人射在线视频| 欧美激情在线狂野欧美精品| 中文字幕日韩欧美| 国产精品高潮粉嫩av| 国产精品一区二区久久久久| 久久成人这里只有精品| 日韩女优在线播放| 成人福利网站在线观看11| 久热国产精品视频| 久久久精品久久久| 国产午夜精品美女视频明星a级| 色诱女教师一区二区三区| 久久久久久久久网站| 国模视频一区二区| 国产成人a亚洲精品| 久久精品视频亚洲| 第一福利永久视频精品| 97成人精品视频在线观看| 97超碰国产精品女人人人爽| 亚洲激情在线观看视频免费| 青青在线视频一区二区三区| 91香蕉电影院| 欧美日本国产在线| 中文字幕日韩欧美| 欧美一级视频一区二区| 在线看国产精品| 亚洲欧美日韩国产成人| 992tv成人免费视频| 欧美极品少妇xxxxⅹ喷水| 日韩美女视频免费在线观看| 日本精品久久久久久久| 国产精品永久免费在线| 日韩av免费看网站| 国产精品爱久久久久久久| 国产成人精品免费久久久久| 精品五月天久久| 91av在线播放视频| 日产日韩在线亚洲欧美| 激情懂色av一区av二区av| 国产v综合v亚洲欧美久久| 97色在线播放视频| 国产精品白丝av嫩草影院| 黄色一区二区在线| 日韩免费在线观看视频| 一区二区三区黄色| 国产免费观看久久黄| 欧美精品www| 久久精品一区中文字幕| 欧美最猛性xxxxx免费| 亚洲缚视频在线观看| 北条麻妃在线一区二区| 国产一区二区激情| 欧美激情在线视频二区| 97在线视频一区| 国产日韩欧美中文在线播放| 亚洲视频在线免费看| 国产丝袜视频一区| 色爱av美腿丝袜综合粉嫩av| 日韩成人中文字幕在线观看| 国产精品福利网| 国模视频一区二区三区| 日韩欧美大尺度| 亚洲色图校园春色| 欧美色视频日本高清在线观看| 久久久久久这里只有精品| 日韩欧美精品在线观看| 欧美日韩午夜视频在线观看| 亚洲第一免费播放区| 91精品国产高清久久久久久| 国产精品成人aaaaa网站| 日韩动漫免费观看电视剧高清| 久久久久久久亚洲精品| 色妞在线综合亚洲欧美| 国产亚洲视频中文字幕视频| 国产精品va在线播放我和闺蜜| 日韩a**站在线观看| 中文字幕av日韩| 国产精品嫩草影院一区二区| 九九热99久久久国产盗摄| 亚洲欧美一区二区三区四区| 久热在线中文字幕色999舞| 久热爱精品视频线路一| 国产一区私人高清影院| 欧美日韩亚洲视频| 夜夜嗨av色一区二区不卡| 欧美黄色三级网站| 亚洲精品456在线播放狼人| 91久久在线观看| 亚洲综合色激情五月| 欧美性高跟鞋xxxxhd| 欧美成人sm免费视频| 国产精品91在线观看| 91精品视频在线免费观看| 欧美精品一区二区三区国产精品| 国产精品吴梦梦| 日韩在线视频线视频免费网站| 色偷偷av一区二区三区乱| 久久久久久噜噜噜久久久精品| 成人精品久久av网站| 欧美在线视频观看免费网站| 国产精品高潮呻吟视频| 在线精品播放av| 成人亚洲激情网| 日韩av中文字幕在线| 欧美日韩激情网| 欧美亚洲一区在线| 91视频九色网站| 亚洲va欧美va国产综合剧情| 久久久综合免费视频| 欧美综合在线观看| 美女性感视频久久久| 国产手机视频精品| 国产精品影院在线观看| 操日韩av在线电影| 亚洲白拍色综合图区| 久久久久亚洲精品成人网小说| 91免费欧美精品| 亚洲美女视频网| 久久99久久99精品中文字幕| 亚洲国产成人精品电影| 国产精品视频不卡| 中文字幕亚洲情99在线| 成人网址在线观看| 久久精品在线视频| 91av视频在线免费观看| 国产精品扒开腿做| 国产精品电影久久久久电影网| 亚洲欧美日韩一区二区三区在线| 亚洲自拍偷拍色图| 国产综合色香蕉精品| 欧美日韩激情视频| 欧美限制级电影在线观看| 在线精品高清中文字幕| www.欧美免费| 欧美福利视频在线| 欧美午夜电影在线| 日韩av快播网址| 最近中文字幕mv在线一区二区三区四区| 一本色道久久综合狠狠躁篇的优点| 亚洲国产精久久久久久久| 亚洲精品美女在线观看| 精品国产网站地址| 国产精品一区电影| 欧美精品电影在线| 久久亚洲精品网站| 国外成人性视频| 国产成人久久久精品一区| 日韩精品在线第一页| 日韩欧美国产网站| 色香阁99久久精品久久久| 日本国产一区二区三区| 中文字幕一区电影| 亚洲综合中文字幕在线观看| 亚洲黄色av女优在线观看| 国产成+人+综合+亚洲欧美丁香花| 亚洲精品在线91| 亚洲情综合五月天| 欧美资源在线观看|