99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

卷1:第6章 Eclipse之三

2018-02-24 15:55 更新

6.4 Eclipse 4.0

架構(gòu)必須持續(xù)地進(jìn)行檢查以評估其是否依然合適。它是否能引入新的技術(shù)?它是否能帶動社區(qū)的成長?它是否便于吸收新的提交者?在2007年底,Eclipse項(xiàng)目確定這些問題的答案是否定的所以他們著手設(shè)計新版本的Eclipse。同時,他們意識到有成千上萬個Eclipse項(xiàng)目依賴于已有的API。在2008年的時候,他們創(chuàng)建了一個新的孵化項(xiàng)目,這個項(xiàng)目有三個明確的目標(biāo):通過開放式的架構(gòu)來簡化Eclipse開發(fā)模型、吸引新的開發(fā)者以及利用基于web技術(shù)的優(yōu)勢。

圖6.10 4.0示例應(yīng)用生成的模型

6.4.2級聯(lián)樣式表樣式

Eclipse發(fā)布于2001年,早于富互聯(lián)網(wǎng)應(yīng)用的時代,在這個時代可以使用CSS來實(shí)現(xiàn)皮膚的切換以提供不同的外觀和體驗(yàn)。Eclipse4.0提供了使用樣式表來容易地修改Eclipse應(yīng)用外觀和體驗(yàn)的功能。默認(rèn)的CSS樣式單可以在org.eclipse.platform bundle的css文件下找到。

6.4.3 依賴注入

Eclipse的擴(kuò)展注冊器和OSGi服務(wù)都是基于服務(wù)模型編程的。按照慣例,服務(wù)編程模型包含服務(wù)的生產(chǎn)者和消費(fèi)者。而居間者(broker)負(fù)責(zé)管理生產(chǎn)者和消費(fèi)者的關(guān)系。

圖 6.12 服務(wù)居間者上下文(Service Broker Context)

生產(chǎn)者將服務(wù)和對象添加到上下文中儲存。通過上下文,服務(wù)被注冊到消費(fèi)者對象中。消費(fèi)者生命需要的服務(wù)而上下文負(fù)責(zé)確定如何滿足這個需求。這種方式使得使用動態(tài)服務(wù)更容易了。在Eclipse 3.x中,消費(fèi)者需要注冊監(jiān)聽器,當(dāng)服務(wù)可用或不可用的時候獲取通知。在Eclipse 4.x中,一旦一個上下文注入到消費(fèi)者對象中,任何變化都會自動傳遞到那個對象中。換句話說,依賴注入會再次發(fā)生。消費(fèi)者通過使用Java 5的注解來聲明使用上下文,這些注解是符合JSR 330規(guī)范的如@inject,除此以外還會有一些自定義的Eclipse注解。構(gòu)造器、方法以及域注入都是支持的。4.x的運(yùn)行環(huán)境會掃描對象來尋找這些注解。實(shí)際執(zhí)行的操作取決于使用的注解。

分離上下文和應(yīng)用使得組件能夠更好地常用,也使得服務(wù)的消費(fèi)者免于理解內(nèi)部實(shí)現(xiàn)。在4.x中,更新狀態(tài)行的代碼如下:

@Inject
 IStatusLineManager statusLine;
 ?    ?    ?
statusLine.setMessage(msg);

6.4.4 應(yīng)用服務(wù)

Eclipse 4.0的一個主要目標(biāo)是簡化用戶使用的API以便于其實(shí)現(xiàn)通用的服務(wù)。簡單的服務(wù)列表被稱為“20件事”(the twenty things)或Eclipse應(yīng)用服務(wù)。其目標(biāo)是為用戶提供單獨(dú)的API使得用戶不必深入了解所有的API。它們被組織成獨(dú)立的服務(wù),因此可以用于其它非Java語言,像JavaScript。例如,有這樣的API可以訪問應(yīng)用模型,讀取和修改首選項(xiàng)以及報告錯誤和警告。

6.5 結(jié)論

基于組件化架構(gòu)的Eclipse可以不斷吸收新的技術(shù)而同時保證向后的兼容性。這樣的成本比較高昂,但是回報在于Eclipse社區(qū)在不斷發(fā)展壯大,因?yàn)橛脩裟軌蚧诮⑵饋淼男湃?,不斷使用這些穩(wěn)定的API開發(fā)產(chǎn)品。 Eclipse廣大的用戶群體會有不同的使用場景而我們眾多的API使得新的用戶很難適應(yīng)和理解?;仡欉^去,我們應(yīng)該讓API更簡單一些。如果80%的用戶只使用20%的API,有必要對其進(jìn)行簡化,這也是Eclipse 4.x創(chuàng)建的原因之一。

聰明的用戶群體帶來了有趣的使用場景,例如分解出IDE中的bundle來構(gòu)建RCP應(yīng)用。另一方面,群體有時候也會創(chuàng)造一些噪音來要求實(shí)現(xiàn)很少見的場景,這消耗了大量的時間來實(shí)現(xiàn)。

在Eclipse項(xiàng)目的早期,提交者有充裕的時間來編寫文檔、樣例以及回答社區(qū)的問題。隨著時間的推移,這個任務(wù)轉(zhuǎn)移給了整個Eclipse社區(qū)。我們本可以提供更好地文檔和樣例來幫助社區(qū),但是因?yàn)槊總€釋放版本都會有大量的特性使得這變得很困難。一般情況下,軟件發(fā)布總是會延期;然而在Eclipse,我們總是按期發(fā)布,這樣做同時也可以幫助我們的客戶建立起按期發(fā)布產(chǎn)品的信心。

通過吸收新技術(shù)以及重新改造Eclipse的外觀和運(yùn)行機(jī)制,我們會持續(xù)與用戶進(jìn)行交流并使他們留在我們的社區(qū)。如果你對Eclipse相關(guān)信息感興趣,請?jiān)L問http://www.eclipse.org。

腳注

  1. http://www.eclipse.org
  2. http://www.eclipse.org/equinox
  3. For example: http://help.eclipse.org.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號