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

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

JavaServer Faces框架使用的設計模式

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

  本文中,作者 Anand Joshi 使用 JSF 框架中的設計模式闡釋了 javaServer™ Faces (JSF) 體系結構。他討論了 JSF 體系結構中使用的 GoF 設計模式,以及這些模式在 JSF 框架中的作用。任何對設計模式和 JSF 體系結構有一定了解的人都能從 Anand 具體的介紹中有所收獲。*讀者應該對 GoF 設計模式和 JSF 技術有很好的了解。

  設計模式可以幫助用戶在更高層次上抽象細節,更好地理解體系結構。假如比較熟悉 GoF 設計模式和 JavaServer Faces (JSF) 框架,本文可以幫助您洞察 JSF 框架中使用的設計模式,深入理解其工作原理。

  本文探討了 JSF 框架中使用的設計模式。具體討論的設計模式包括 Singleton、Model-View-Controller、Factory Method、State、Composite、Decorator、Strategy、Template Method 和 Observer 模式。

設計模式和 JavaServer Faces (JSF) 技術

首先簡要地介紹一下模式和 JSF 框架。

  • 模式。設計模式是對問題和解決方案進行抽象的普遍適用的方法。因為模式是所有開發人員和架構師公認的,所以模式可以節約時間和資源。用外行話來說,模式就是關于某個人所共知的問題的經過驗證的解決方案。模式可以重用,重用使得解決方案更健壯。
  • Java Server Faces。 JSF 體系結構是一種 Web 應用程序框架。它是 Java Community PRocess (JCP) 推動的,有望成為 Web 應用程序開發的標準框架。目前用于開發 Web 應用程序的框架有 50 多個,這說明迫切需要實現框架的標準化,這正是 JSF 框架的目標!

深入剖析 JSF 模式

  現在我們來討論 JSF 體系結構中的各種設計模式。本文將具體討論 Singleton、Model-View-Controller、Factory Method、State、Composite、Decorator、Strategy、Template Method 和 Observer 設計模式。我將分析每種模式的用途及其在 JSF 框架中的作用。

Singleton 模式

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

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

Model-View-Controller (MVC)

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

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

Factory Method 模式

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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品欧美一区二区三区| 成人在线视频福利| 国产欧美亚洲精品| 亚洲成在人线av| 色偷偷av亚洲男人的天堂| 亚洲国产高清高潮精品美女| 日韩av快播网址| 亚洲国产欧美自拍| 伊人一区二区三区久久精品| 久久久亚洲影院| 亚洲免费电影在线观看| 成人a免费视频| 成人久久18免费网站图片| 久久精品中文字幕| 精品久久久一区| 日韩黄色av网站| 97成人精品视频在线观看| 久久久久中文字幕2018| 国产亚洲精品久久久优势| 亚洲精品欧美极品| 日本免费在线精品| 精品国产一区二区三区久久狼黑人| 国产精品爱啪在线线免费观看| 日韩小视频网址| 国产欧美日韩精品在线观看| 欧美最顶级丰满的aⅴ艳星| 国产a级全部精品| 亚洲国产精品人人爽夜夜爽| 国产精品手机播放| 日韩精品中文字幕久久臀| 精品国产91乱高清在线观看| 亚洲自拍偷拍区| 日韩亚洲第一页| 亚洲欧洲一区二区三区在线观看| 国产精品一香蕉国产线看观看| 欧美日韩国产在线| 91成人福利在线| 国产脚交av在线一区二区| 欧美福利在线观看| 亚洲国产精品视频在线观看| 亚洲性日韩精品一区二区| 日韩免费观看av| 亚洲国产成人精品女人久久久| 国产一区二区精品丝袜| 岛国av一区二区三区| 日本三级久久久| 国产精品高精视频免费| 亚洲免费人成在线视频观看| 久久久av电影| 亚洲国产另类 国产精品国产免费| 日韩在线精品视频| 亚洲国产天堂久久综合网| 成人欧美一区二区三区黑人| 成人黄色影片在线| 国产狼人综合免费视频| 在线观看中文字幕亚洲| 国产成人在线亚洲欧美| 亚洲精选中文字幕| 欧美大片在线看免费观看| 日韩在线播放一区| 91精品视频网站| 亚洲欧美综合v| 亚洲美女av黄| 国产精品狼人色视频一区| 国产精品露脸自拍| 日韩精品在线观看一区二区| 一区二区国产精品视频| 国产成人福利网站| 91精品在线影院| 欧美肥老太性生活视频| 国产在线视频不卡| 九九久久久久99精品| 欧美性猛交xxxx乱大交极品| 国产精品自拍视频| 欲色天天网综合久久| 国产精品电影网| 日韩免费看的电影电视剧大全| 免费91在线视频| 亚洲精品小视频在线观看| 日韩最新免费不卡| 国产亚洲一级高清| www.精品av.com| 大胆人体色综合| 久久久亚洲网站| 6080yy精品一区二区三区| 欧美激情欧美狂野欧美精品| 最新国产精品拍自在线播放| 日韩中文字幕第一页| 国产在线精品一区免费香蕉| 久久91精品国产91久久跳| 久久色精品视频| 欧美日韩中文在线观看| 国产精品久在线观看| 久久久国产精彩视频美女艺术照福利| 国产精品夜色7777狼人| 91久久精品国产91久久| 欧美久久精品一级黑人c片| 国产精品丝袜一区二区三区| 日本免费一区二区三区视频观看| 欧美日韩免费一区| 亚洲最新中文字幕| 国产精品日韩在线一区| 亚洲第一网站免费视频| 亚洲国产美女精品久久久久∴| 亚洲人成网站999久久久综合| 性色av一区二区咪爱| 亚洲欧洲偷拍精品| 性视频1819p久久| 国产精品a久久久久久| 精品久久久999| 中文字幕国产精品久久| 国产精品女人网站| 亚洲成人黄色在线| 国产精品一区二区av影院萌芽| 亚洲在线观看视频网站| 国产精品美女视频网站| 欧美黑人极品猛少妇色xxxxx| 欧美丰满少妇xxxx| 精品视频一区在线视频| 色噜噜亚洲精品中文字幕| 欧美高清videos高潮hd| 美日韩精品免费观看视频| 国产精品免费视频xxxx| 亚洲国产91色在线| 96pao国产成视频永久免费| 欧美性极品少妇精品网站| 青青草一区二区| 日韩黄色在线免费观看| 国产欧美精品一区二区| 久色乳综合思思在线视频| 青草青草久热精品视频在线网站| 成人免费网视频| 国产精品久久久久久久久粉嫩av| 久久国产精品影片| 精品一区二区三区四区| 91中文字幕在线观看| 久久久久一本一区二区青青蜜月| 精品免费在线视频| 色婷婷综合久久久久| 亚洲精品av在线| 亚洲男人天堂久| 成人午夜激情网| 久久久久久久久亚洲| 欧美专区在线视频| 激情av一区二区| 欧美日韩激情小视频| 亚洲国产成人在线播放| 久久精视频免费在线久久完整在线看| 一区二区中文字幕| 成人妇女免费播放久久久| 亚洲色图综合久久| 国产不卡视频在线| 亚洲国产精品嫩草影院久久| 久久综合色影院| 欧美激情精品久久久久久久变态| 2021国产精品视频| 国产视频精品久久久| 97视频在线观看免费高清完整版在线观看| 国产成人一区二区三区小说| 日韩中文视频免费在线观看| 欧美日韩亚洲视频一区| 亚洲第一色中文字幕| 欧美成人激情在线| 亚洲小视频在线|