中国三级片网站免费,亚洲A√无码在线观看,AV男人在线东京天堂,久久久69,大胸美女不穿衣服,色婷婷综合激情,欧美日韩精品在线一区二区

廣州為學教育科技有限公司

主營:JAVA開發(fā),軟件工程師,教育培訓

免費店鋪在線升級

聯(lián)系方式
  • 公司: 廣州為學教育科技有限公司
  • 地址: 廣州天河區(qū)車陂灃宏大廈3樓
  • 聯(lián)系: 謝老師
  • 手機: 13632401219
  • 一鍵開店

深入剖析 JSF 模式一

2018-12-23 04:47:44  1385 次瀏覽

現(xiàn)在我們來討論 JSF 體系結(jié)構(gòu)中的各種設計模式。本文將詳細討論 Singleton、Model-View-Controller和Factory Method設計模式。我將分析每種模式的用途及其在 JSF 框架中的作用。

QQ圖片.jpgSingleton 模式

Singleton 模式的目的是保證類只有一個實例被加載,該實例提供一個全局訪問點。當啟動具有 JSF 支持的 Web 應用程序時,Web 容器初始化一個 FacesServlet 實例。在這個階段,F(xiàn)acesServlet 對每個 Web 應用程序?qū)嵗?Application 和 LifeCycle 實例一次。這些實例就采用眾所周知的 Singleton 模式,通常只需要該類型的一個實例。

使用 JSF 的 Web 應用程序只需要 Application 和 LifeCycle 類的一個實例。LifeCycle 管理多個 JSF 請求的整個生命期。因為其狀態(tài)和行為在所有請求之間共享,這些對象采用 Singleton 模式合情合理。LifeCycle 維護的 PhaseListeners 也是 Singleton 模式的。PhaseListeners 由所有 JSF 請求共享。在 JSF 框架中可以廣泛使用 Singleton 模式,以減少內(nèi)存占用和提供對象的全局訪問。NavigationHandler(用于確定請求的邏輯結(jié)果)和 ViewHandler(用于創(chuàng)建視圖)也是使用 Singleton 模式的例子。

Model-View-Controller (MVC)

MVC 模式的目的是從數(shù)據(jù)表示(View)中將數(shù)據(jù)(即 Model)分離出來。如果應用程序有多種表示,可以僅替換視圖層而重用控制器和模型代碼。類似的,如果需要改變模型,可以在很大程度上不改變視圖層??刂破魈幚碛脩魟幼?,用戶動作可能造成模型改變和視圖更新。當用戶請求一個 JSF 頁面時,請求發(fā)送到 FacesServlet。FacesServlet 是 JSF 使用的前端控制器 servlet。和其他很多 Web 應用程序框架一樣,JSF 使用 MVS 模式消除視圖和模型之間的耦合。為了集中處理用戶請求,控制器 servlet 改變模型并將用戶導航到視圖。

FacesServlet 是 JSF 框架中所有用戶請求都要經(jīng)過的控制器元素。FacesServlet 分析用戶請求,使用托管 bean 對模型調(diào)用各種動作。后臺(backing)或托管(managed)bean 就是該模型的例子。JSF 用戶界面(UI)組件是視圖層的例子。MVC 模式把任務分解給具有不同技能的開發(fā)人員,使這些任務能夠同時進行,這樣 GUI 設計人員就可以使用豐富的 UI 組件創(chuàng)建 JSF 頁面,同時后端開發(fā)人員可以創(chuàng)建托管 bean 來編寫專門的業(yè)務邏輯代碼。

Factory Method 模式

Factory Method 模式的目的是定義一個用于創(chuàng)建對象的接口,但是把對象實例化推遲到子類中。在 JSF 體系結(jié)構(gòu)中,F(xiàn)actory Method 模式被用于創(chuàng)建對象。LifeCycleFactory 是一個創(chuàng)建和返回 LifeCycle 實例的工廠對象。LifeCycleFactory 的 getLifeCycle (String LifeCycleId) 方法采用 Factory Method 模式,根據(jù) LifeCycleId 創(chuàng)建(如果需要)并返回 LifeCycle 實例。自定義的 JSF 實現(xiàn)可以重新定義 getLifeCycle 抽象方法來創(chuàng)建自定義的 LifeCycle 實例。默認的 JSF 實現(xiàn)提供默認的 LifeCycle 實例。此外,對于每個 JSF 請求,F(xiàn)acesServlet 都從 FacesContextFactory 得到 FacesContext。FacesContextFactory 是一個抽象類,公開了 getFacesContext API,JSF 實現(xiàn)提供了 FacesContextFactory 和 getFacesContext API 的具體實現(xiàn)。這是另外一個使用 Factory Method 模式的例子,具體的 FacesContextFactory 實現(xiàn)創(chuàng)建 FacesContext 對象。

網(wǎng)友評論
0條評論 0人參與
最新評論
  • 暫無評論,沙發(fā)等著你!
百業(yè)店鋪 更多 >

特別提醒:本頁面所展現(xiàn)的公司、產(chǎn)品及其它相關信息,均由用戶自行發(fā)布。
購買相關產(chǎn)品時務必先行確認商家資質(zhì)、產(chǎn)品質(zhì)量以及比較產(chǎn)品價格,慎重作出個人的獨立判斷,謹防欺詐行為。

回到頂部