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

正文內(nèi)容

pentaho源代碼閱讀報告(參考版)

2025-03-26 00:33本頁面
  

【正文】 。可能是因為版本不斷更新,Pentaho平臺內(nèi)出現(xiàn)了一些多余的代碼,但瑕不掩瑜,Pentaho仍舊堪稱面向?qū)ο笤O(shè)計的典范??偨Y(jié)與收獲無論是從應(yīng)用創(chuàng)意的角度,還是軟件工程的角度來看,Pentaho都有自己的獨到之處。Core包內(nèi)有包含13個子包:admin、audit、ponent、connection、publisher、runtime、repository、services、session、solution、system、ui、util。其中core內(nèi)所含代碼為Pentaho的核心代碼,另外七個包是Pentaho平臺的外圍擴展。該對象被封裝為AuditEntry類的私有成員auditEntry;整個Audit功能,完全通過AuditHelper暴露給使用者,外部不能看到除AuditHelper以外的類,AuditHelper就是這里的Facade;同時,AuditEntry類又是通過工廠方法來創(chuàng)建具體的IAudit對象的,這里的工廠方法不很明顯,因為它是一段靜態(tài)代碼,在AuditEntry類初始化時執(zhí)行。其中Audit機制的實現(xiàn)方案就是十分典型的代表。RuntimeContex所使用的接口為IComponent,而Quartz所提供的接口與此不同于是用類JobSchedulerComponent作為Adapter將Quartz的接口與IComponent統(tǒng)一起來。Adapter模式能夠?qū)⒏鞣N第三方BI產(chǎn)品以插件形式集成進來是Pentaho的特色之一,但是各種第三方產(chǎn)品所提供的功能接口完全不同,這就需要使用Adapter模式將它們的接口統(tǒng)一到Pentaho的框架之下。ade模式如圖 31所使,PentahoSystem是整個Pentaho平臺核心層的對外接口,外部訪問Pentaho平臺的各種功能完全通過該接口完成,這是一個典型的Fa231。這有點像Singleton模式,但由于這個方法沒有保證該類對象的個數(shù)特征,因此不應(yīng)當算作Singleton模式,而應(yīng)當算作工廠方法的一種特殊形式。圖 29 Url處理抽象工廠模式工廠方法模式工廠方法模式在Pentaho平臺中的應(yīng)用十分廣泛,許多類的創(chuàng)建都是以這種模式進行的,這里只列舉其中的一個:ContentRepository。圖 28 Runtime資源庫的抽象工廠模式此外,Pentaho對URL的處理部分的架構(gòu)也是抽象工廠的典型應(yīng)用。其中,IRuntimeRepository所扮演的角色就是抽象工廠接口,實現(xiàn)它的RuntimeRepository則是一個具體的工廠類,用戶RuntimeContext要創(chuàng)建一個IRuntimeElement類型的實例,則需要調(diào)用RuntimeRepository的newRuntimeElement()方法。抽象工廠模式抽象工廠模式在Pentaho平臺中的應(yīng)用很多,其中最典型的就是資源庫的實現(xiàn),下面以Runtime資源庫的實現(xiàn)為例,講述抽象工廠模式在資源庫實現(xiàn)中的應(yīng)用。每個可發(fā)布的資源都對應(yīng)一個Publish消息的相應(yīng)類,與SystemEventListener一樣,PentahoSystem類維護一個Publish消息相應(yīng)類的列表,這個列表是在系統(tǒng)初始化時,由SystemSettings類從配置文件中讀出所有的Publisher類信息,并由PentahoSystem類插入相關(guān)對象而得來的。圖中所示的兩個事件響應(yīng)類:SharkSystemListener是第三方插件Shark注冊的響應(yīng)類,globalObjectInitializer則是用來處理全局環(huán)境信息的Pentaho系統(tǒng)類。圖 26 Pentaho的SystemEventListener模式如圖 26所示,Pentaho的EventListener機制的事件發(fā)出者是PentahoSystem類,事件響應(yīng)者是IPentahoSystemListener接口的實現(xiàn)類。本文中所講述的設(shè)計模式并不是Pentaho中所用到的全部,只是其中的幾個典型。ade模式、代理模式等等。只是一個小小的改變,便換來了巨大的好處,這也顯示出其設(shè)計人員的匠心獨具。這樣一來,Pentaho平臺的核心邏輯與其UI感觀分離開來,可以分別進行配置。Pentaho核心與Style分離的機制Phentaho核心與其外部“皮膚”是分離配置的。圖 25 Pentaho平臺Audit機制順序圖如圖 25所示,在Pentaho平臺運行過程中,一旦需要記錄信息,則調(diào)用AuditHelper的靜態(tài)方法audit來完成Audit動作;AuditHelper進一步調(diào)用 ;AuditEntry類是維護單一IAuditEntry接口對象。它們之間的關(guān)系如圖 24所示。Pentaho的Audict機制圖 24 Pentaho的Audit機制實現(xiàn)類圖Pentaho的Audit機制主要包含兩個主體:被Audit的對象和Audit執(zhí)行者。在Pentaho平臺中,所有插件的配置文件都存放在Solutionpath/system/***/目錄下,其中***代表插件的名字,例如Quartz的配置文件就存放在Solutionpath/system/Quartz/目錄下。圖 23 參數(shù)傳遞機制實現(xiàn)類圖插件的參數(shù)配置機制許多插件要正常工作需要配置一些參數(shù),例如Quartz插件本身就需要配置任務(wù)調(diào)度用數(shù)據(jù)庫的JNDI地址等等參數(shù)。前者的核心接口是IParameterprovider,依據(jù)是用場景的不同衍生出了許多不同的Parameterprovider類:HttpRequestParameterprovider負責傳遞用戶請求“Post”過來的參數(shù),HttpSesionParameterporvider則負責傳遞具有Session作用域的參數(shù);JVMParameterProvider則負責傳遞Java虛擬機相關(guān)的參數(shù)。Pentaho平臺有一組專門的接口和類來完成這兩項工作。插件調(diào)用的參數(shù)傳遞插件在完成其功能時,往往需要從外部獲取部分參數(shù),執(zhí)行完畢后又要傳遞輸出結(jié)果給調(diào)用方。圖 22 PentahoSystem的EventListener機制如圖 22所示,Quartz插件的初始化、清除工作就是由QuartzSystemListener類完成的。Pentaho的EventListener機制是通過PentahoSystem類來實現(xiàn)的。并繼續(xù)執(zhí)行下一個Action。5. ().execute()完成Component的動作。3. executeSequence其實也只是準備一下參數(shù),真正的執(zhí)行方法是executeLoop,該方法處理每個Action序列的參數(shù),然后調(diào)用performActions執(zhí)行動作,performActions察看這個Action序列,首先檢查執(zhí)行它的條件,條件滿足才執(zhí)行,然后一項一項開始執(zhí)行,若遇到一個IActionSequence,就遞歸調(diào)用executeLoop,如果是IActionDefinition,就調(diào)用executeAction執(zhí)行該Action。SolutionEngine本身解釋執(zhí)行Action序列的詳細執(zhí)行過程也較復(fù)雜,如圖 21所示:1. SolutionEngine的執(zhí)行過程主要在excute方法內(nèi)完成,該方法首先創(chuàng)建執(zhí)行所需的各種環(huán)境,然后調(diào)用executeInternal完成執(zhí)行過程。進而,ViewAction使用PhentahoSession對象初始化HttpServletRequestHandler對象,調(diào)用該對象父類BaseRequestHander的handleActionRequest方法,該方法中初始化SolutionEngine并執(zhí)行Action序列,將結(jié)果返回。圖 20 Pentaho平臺Action序列執(zhí)行順序圖Action序列在Pentaho平臺的Web頁面中的表示是一個圖標,當用戶點擊該圖標時,Pentaho平臺就執(zhí)行這個Action序列。Action序列的執(zhí)行機制圖 19 Pentaho平臺Action序列執(zhí)行機構(gòu)類圖Pentaho平臺的Solution的內(nèi)容就是一系列Action序列,Action序列的解釋執(zhí)行是Pentaho平臺最為核心的內(nèi)容。下面以Solution的Publish過程為例,介紹Pentaho系統(tǒng)Publish機制的具體工作過程,其他資源的Publish過程大同小異。如圖 17所示,目前的Pentaho系統(tǒng)共有四個Publisher類,代表了三種可發(fā)布的資源,即:全局配置參數(shù)(Settings)、全局列表(GlobalListes)、Solution和Shark。Pentaho平臺的Publish機制當用戶完成Solution的開發(fā)或修改時,需要讓Pentaho平臺重新掃描Solution的根目錄以反映這個修改;當用戶修改了Pentaho平臺的某些系統(tǒng)配置文件的時候,也需要Pentaho平臺刷新相關(guān)的設(shè)制以反映這種修改,這個過程成為發(fā)布(Publish)。需要注意的是,Pentaho平臺種存在一個工廠類:PentahoSessionFactory,但沒有見到這個類的具體的調(diào)用,實際上PhentahoSession的創(chuàng)建并不在這里,而是在UIUtil(它取代了那個工廠類的功能)內(nèi)部,也就是說,并不是系統(tǒng)Session一創(chuàng)建就創(chuàng)建PentahoSession而是需要時才創(chuàng)建。P
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1