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

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

擴展Eclipse的Java開發工具(一)

2019-11-18 13:02:57
字體:
來源:轉載
供稿:網友

  Eclipse 的 java 開發環境的重構(refactor)能力是它提供的最有用的特性之一。本文將向您介紹創建您自己的重構(作為 Eclipse 的自然擴展)步驟。本文所提供的解決方案的許多部分摘自最近出版的 The Java Developer's Guide to Eclipse 一書。
  
  由于 Eclipse 具有功能強大的 Java 開發環境,這使它獲得了人們的一致好評。這個 Java 開發環境(再加上團隊環境和其它基礎功能)使 Eclipse 成為引人注目的集成開發環境,對 Java 開發人員來說,這是個好消息。而且,Eclipse 還是一個開放源碼項目。但真正使人們對 Eclipse 感到興奮的是它提供了擴展的可能性。
  
  許多基于 Eclipse 的商用產品都顯示出這種提供集成產品的方法的實際意義。例如,IBM WebSphere application Developer 和 Rational XDE 就說明了 Eclipse 已具有的影響。這些產品和其它基于 Eclipse 的產品降低了用戶的“學習曲線”,因為它們具有類似的用戶界面。當然,對于大型軟件公司來說,這頗有價值,但是對于小公司或個人有什么用嗎?
  
  這正是 Eclipse 擴展性能力讓人感愛好的地方。不僅那些擁有大型開發組織的公司可以用它進行集成,任何愿意花些時間學習幾個 Eclipse 框架的人也都可以利用這一能力?!芭恫?,”您可能在想,“別再提什么框架;我沒時間學習更多框架?!辈槐負模贿@學起來很快而且相當輕易。在您的另一絲疑慮在頭腦中開始形成之前,先聲明一點,本文絕不是對 Eclipse 進行毫無價值的“hello world”式擴展。請放心,在如何增強 Eclipse 的 Java 開發環境的生產性使用方面,您將看到實際的價值以及一個清楚演示。您甚至還可能有點驚異地發現:要完成某些相當令人驚異的事情,只要幾十行代碼就可以了。
  
  本文將向您展示什么是可能的,從哪里開始,并將向您提供開始時需要什么的可靠評價。盡管擴展 Eclipse 是一個高級主題,但是您只要先了解如何使用 Eclipse 的 Java 開發環境就可以了。
  
  自己輕松重構成員可視性
  最初在編寫代碼時,我沒有過多地擔心將方法可視性歸為 default(包)、PRivate、public 還是 protected。在創建方法時,我使它們都為 public。只有當我最后定下了包的組織結構并完成了對方法的重構 - 不管是通過從現有代碼抽取出新方法、在層次結構中上移或下移方法還是將方法整個地移至其它類中 - 我才會重新檢查方法的可視性。我認為,在我知道最終類的模樣并實際使用過代碼之前,我不想聲明我的“客戶們”可能需要什么。換句話說,在共享新框架之前,必須確定什么是實現細節,什么是必需的,這樣別人才能夠擴展它。
  
  假如只需在 Outline 視圖、Hierarchy 視圖或任何您查看方法的地方選擇方法 - 然后通過單擊菜單選項,就可以將一個或多個方法設置成所期望的可視性 - 那么這會非常方便。誠然,我習慣了在我使用 VisualAge for Smalltalk 那段日子里學到的這一功能。圖 1 顯示了對 Eclipse 的 Java 開發環境中 Java 編輯器的 Outline 視圖上下文的擴展。
  
 擴展Eclipse的Java開發工具(一)(圖一)

  
圖 1. 對方法的上下文菜單進行的擴展

  從用戶的角度而言,這很巧妙,因為這是引入用戶界面的很自然的方法。沒有任何暗示說這些新的菜單選項不屬于 Eclipse 最初的 Java 開發工具(Java Development Tool,JDT)。事實上,那就是菜單級聯使用“soln”前綴的原因 - 這樣您就可以分辨出它是一個擴展!而且,開發人員不必記住只有在特定視圖或編輯器中才可以使用這些選項,因為只要方法顯示在哪里,它們就可以在哪里顯示。
  
  簡述“Hello World”
  “嘿,等一下,您承諾過不會有‘Hello, World’的!”是的,但在我們開始討論真正有趣的事情之前,確實需要先來了解一下 Eclipse 的基礎。所以,假如您從未編寫過自己的 Eclipse 擴展,那么請和我一起快速了解一下 Eclipse 的體系結構和插件開發環境。否則,請跳至下一節。繼續這次“旅行”!
  
  本質上,Eclipse 是一組松散綁定但互相連接的代碼塊。假如搞清楚這些代碼塊如何被“發現”,以及它們之間怎樣相互發現和擴展,就能了解 Eclipse 體系結構的基本原理。
  
 擴展Eclipse的Java開發工具(一)(圖二)

  
圖 2. Eclipse 平臺體系結構

  這些功能單元稱為插件。Eclipse 平臺運行時(參見圖 2)負責在名為 plugin.xml 的文件中查找這些插件的聲明(稱為插件清單),每個 plugin.xml 文件都在各插件的子目錄中,這些子目錄位于 Eclipse 的安裝目錄下名為 plugins 的公共目錄(具體而言,就是 /eclipse/plugins)。根據這些文件,Eclipse 平臺運行時就在啟動時在內存中構建一個全局注冊表,稱為插件注冊表,根據這個注冊表,給定的插件就可以在運行時確定其它哪些插件希望擴展它。希望被其它插件擴展的插件將聲明一個擴展點。這是插件的某種“電源板”,通過對插件聲明擴展,其它插件就可以利用這個插件。
  
  回到我們的示例,那么任務就是通過查找滿足我們需要的相應擴展點來決定從哪里“插入” Eclipse。幸運的是,一旦使用 Eclipse 一段時間后,您就會知道有數量驚人的東西可以使用,盡管可能您還沒有實際使用過。這是因為您在 Eclipse 用戶界面所看到的與由構成 Eclipse 插件的類所建的模型通常幾乎是一一對應的。圖 3 使這一點更為清楚:
  
擴展Eclipse的Java開發工具(一)(圖三)

  
圖 3. 視圖及其模型

  這里我們看到一系列普通的用戶界面,右側的是最廣為人知的用戶界面 - 命令提示符(Command Prompt)窗口,在其中用 dir 命令顯示文件系統內容,然后是左邊專門化程度較高的視圖 - JDT 的 Package EXPlorer。從用戶界面的角度來看,所有這些視圖都將同一“模型”(也就是一些文件)的表示可視化。作為 Eclipse 用戶,我們很自然地會希望這兩個 Eclipse 視圖同時向我們提供查看同一事物的不同方法:Navigator 展示了部分操作系統文件的專門化視圖(Eclipse 的工作空間),而 Package Explorer 向我們展示了同樣的一些文件,這些文件是用對 Java 程序員而言更自然更高效的方法組織和表示的。
  
  通過了解 Eclipse 用戶界面如何反映其底層模型,以及 Eclipse 模型如何成為相互構建的基礎,這向我們提供了該如何找到“插入”我們擴展的最佳位置的重要線索。顯示在視圖下面的 Eclipse 接口名稱 IFile 和 ICompilationUnit 就是我們可以預期從構成 Eclipse 的模型中獲得的兩個接口示例。由于它們通常對應于用戶界面中顯示的控件項,所以您已經對通過編程獲得的效果有一個直觀的感受。
  
  這是我們“旅行”的第 I 部分。在第 II 部分中,我們將討論開發解決方案。我們不打算提供這個解決方案并逐一解釋,探索其中的一些奧秘,這不是更有趣嗎?讓我們首先討論與以下這個問題相關的一些問題:使用我們自己的方法可視性重構能力來擴展 JDT。
  
  把問題問在點子上比知道答案更重要
  
  我們先探討一些常規問題:
  
  在用戶界面中,如何顯示擴展,以及顯示在何處?
  
  通常如何擴展用戶界面?
  
  對用戶界面的擴展如何知道類似于“選擇”這樣的基本事件?
  
  我們對基本 Eclipse 領域有了很好的了解之后,將轉向一些特定于 JDT 的問題:
  
  如何擴展 JDT 的特定元素的用戶界面(象 Outline 視圖中顯示的成員)?擴展視圖還是它們的底層模型?
  
  Package Explorer 中顯示的元素和其它視圖(如 Outline 視圖)中顯示的相同元素之間有什么關系?我們的擴展需要知道它們之間的任何區別嗎?
  
  如何通過編程更改 JDT 模型?
  
  怎樣分析 Java 源代碼以進行修改?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本高清+成人网在线观看| 久久夜色精品国产欧美乱| 久久久久一本一区二区青青蜜月| 欧美成在线观看| 欧美精品videosex性欧美| 亚洲图片制服诱惑| 中文字幕日韩精品有码视频| 国产亚洲成精品久久| 精品视频在线播放免| 欧美高清理论片| 久久久久久久久久久免费精品| 欧美激情一区二区三区久久久| 亚洲va电影大全| 96sao精品视频在线观看| 国产成人高潮免费观看精品| 亚洲欧洲午夜一线一品| 欧美成人国产va精品日本一级| 日韩在线观看av| 国产aⅴ夜夜欢一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲国产高清高潮精品美女| 精品久久在线播放| 免费99精品国产自在在线| 欧美美女操人视频| 亚洲国产91色在线| 中文字幕在线亚洲| 欧美精品videos另类日本| 国产中文字幕亚洲| 欧美交受高潮1| 亚洲美女av网站| 亚洲图片在线综合| 国产一区二区在线播放| 国产精品久久久久久久午夜| 亚洲综合中文字幕在线| 亚洲九九九在线观看| 亚洲综合日韩在线| 亚洲免费一级电影| 亚洲bt天天射| 国产成人精品网站| 久久精品免费电影| 精品久久久国产精品999| 国产精品第三页| 亚洲人成电影在线观看天堂色| 欧美另类高清videos| 一区二区三区视频免费在线观看| 日韩欧美成人免费视频| 亚洲午夜未删减在线观看| 国产精品久久久久久久久久久久久| 久久久在线观看| 亚洲精品福利资源站| 午夜精品久久久久久99热软件| 欧美日韩中文在线观看| 亚洲色图17p| 欧美日韩一区二区精品| 亚洲欧美日韩一区二区在线| 成人欧美在线观看| 久久久久久久久久婷婷| 久久综合国产精品台湾中文娱乐网| 青青a在线精品免费观看| 最近更新的2019中文字幕| 九九久久久久久久久激情| 91精品在线国产| 欧美极品少妇xxxxx| 成人av资源在线播放| 国产欧美精品在线播放| 国产精品露脸av在线| 亚洲欧美日韩国产中文专区| 国产精品视频不卡| 欧美激情视频在线观看| 国产午夜精品理论片a级探花| 久久久久成人精品| 国产精品看片资源| 日韩精品久久久久久福利| 国产精品白丝av嫩草影院| 8050国产精品久久久久久| 狠狠做深爱婷婷久久综合一区| 精品久久久久国产| 亚洲一区二区三区xxx视频| 中文字幕日韩电影| 亚洲日韩中文字幕| 亚洲国内精品视频| 国产成人精品最新| 久久免费高清视频| 国产91热爆ts人妖在线| 国产成人精品免高潮在线观看| 精品国产一区二区三区久久久| 亚洲一区精品电影| 亚洲视频在线观看免费| 91久久精品一区| 亚洲男人天堂手机在线| 国产精品主播视频| 久久男人资源视频| 欧美日韩亚洲一区二区| 亚洲a级在线观看| 51精品国产黑色丝袜高跟鞋| 久久久天堂国产精品女人| 92国产精品视频| 日韩中文有码在线视频| 亚洲国产97在线精品一区| 亚洲社区在线观看| 久久综合色影院| 一区二区三区日韩在线| 成人在线视频网站| 九九精品在线视频| 日韩国产一区三区| 欧美精品在线免费播放| 日本道色综合久久影院| 国产精品视频yy9099| 日韩专区中文字幕| 欧美激情中文网| xvideos亚洲人网站| 亚洲成人免费在线视频| 色综合天天狠天天透天天伊人| 九九视频这里只有精品| 国产精品久久久久久久久粉嫩av| 欧美日韩国产影院| 国内精品久久久久久久| 国产精品丝袜久久久久久高清| 久久久免费观看视频| 亚洲欧美变态国产另类| 亚洲国产成人精品久久久国产成人一区| 亚洲电影在线看| 亚洲免费福利视频| 92版电视剧仙鹤神针在线观看| 色婷婷综合成人av| 国产精品亚洲一区二区三区| 色无极亚洲影院| 日韩中文第一页| 欧美激情免费观看| 亚洲欧美成人一区二区在线电影| 久久久精品国产网站| 欧美在线观看一区二区三区| 日韩电影在线观看免费| 亚洲va电影大全| 精品无人国产偷自产在线| 欧美大胆在线视频| 亚洲日韩中文字幕| 亚洲毛片一区二区| 欧美精品在线播放| 高清欧美性猛交xxxx| 成人免费高清完整版在线观看| 欧美激情中文字幕乱码免费| 亚州国产精品久久久| 亚洲天堂第一页| 国产精品中文在线| 精品久久久久久久久久ntr影视| 久久精品中文字幕一区| 亚洲国产精品热久久| 久久五月天色综合| 91精品国产自产在线观看永久| 久久久久久久97| 亚洲欧美一区二区三区在线| 欧美黑人国产人伦爽爽爽| 亚洲欧洲国产一区| 欧美午夜激情视频| 亚洲视频在线观看免费| 97超视频免费观看| 国内精品久久久久影院 日本资源| 成人免费观看网址| 色妞欧美日韩在线| 亚洲在线视频观看| 成人免费视频xnxx.com| 亚洲天堂影视av| 欧美与黑人午夜性猛交久久久|