熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

專訪林昊:一步一步了解Java模塊化

2022-06-13   來源: Java核心技術 

  很多Java開發者對模塊化編程仍然接觸不多對Java的模塊化的進展也不甚了解多方觀望年將是Java模塊化的一年因此CTO編輯希望能在這一年中讓更多的開發者了解模塊化編程的概念它的學習實現方式以及它的好處為此我們請來了一位國內的OSGi布道者為大家進行一次簡單的普及介紹

  有請China OSGi User Group Director淘寶網平台架構部架構師——林昊(@BlueDavy)林昊是《OSGi原理與最佳實踐》一書的作者

  此次采訪模式為郵件采訪林昊對CTO編輯提出的個問題一一進行了回復內容如下

   模塊的實現和傳統編程方法有何不同?開發者需要學習哪些知識(比如版本控制依賴性管理規范的接口設計等)?

  林昊模塊的實現和傳統的編程方法確實有一些差別主要體現在模塊之間類訪問的隔離版本選擇這兩個方面如希望更好的設計模塊化的系統開發者需要學習ClassLoader機制模塊之間類的交互方法(這包括了模塊怎麼樣對外提供可訪問的package怎麼樣訪問其他模塊提供的package如何選擇適合版本的package等)

   對模塊化的形容我們往往使用高內聚低耦合/松散耦合這樣的用語您是如何理解這兩個概念的?

  林昊高內聚低耦合更多程度是指讓模塊之間的依賴是清晰的內聚體現在內部對功能實現的封裝而低耦合體現在模塊對外提供的接口是可控的在模塊化之前在Java體系中更多的是通過publicprotectedprivate這樣的作用域來保證依賴清晰(參考閱讀模塊化概念解惑)但事實證明這樣的方法來保證不是非常有效而在模塊化的體系中則會有明確的模塊之間接口暴露以及依賴的定義因此能夠更好的實現高內聚和低耦合

   模塊化編程的好處有哪些?它解決了原來那種緊密耦合式編程中存在的哪些問題?

  林昊模塊化編程最大的好處在於有效的控制和避免了模塊被外部誤用其他方面的好處在於各模塊可以方便的做到引用自己所需要依賴的包避免產生包沖突現象對於現有java體系而言另外一個好處則是可以做到多版本的共存

   您覺得模塊化編程最大的難點在哪裡?在您的模塊化開發過程中理清邏輯和層次所花的時間和編寫代碼花費的時間大致是怎樣的比例?

  林昊模塊化編程最大的難點一方面是設計方面的挑戰在沒有實際隔離情況下模塊化的設計其實並不會真正做到有效的模塊隔離的設計另一方面是在開發過程中以前的開發習慣都需要改變例如以前需要依賴其他模塊時可以采用直接依賴工程或依賴jar的方式但在模塊化的系統中則不行

  在實際的模塊化開發過程中更多的時間仍然會花費在設計階段

   我們來談談OSGi規范OSGi模塊化規范有什麼特點?

  林昊OSGi是Java中目前唯一的一個模塊化動態化的規范在模塊化方面OSGi聯盟已經研究了很多年了因此OSGi規范對於模塊的物理隔離模塊的交互多版本這些方面都有了非常完善的機制並且也得到了現在幾乎所有的App Server廠商或開源社區的認可

   雖然OSGi已經是有十多年發展的成熟的模塊化標准但Sun在對Java進行模塊化的時候卻選擇采用JSR 並在Java 當中開展Jigsaw項目您對此有什麼看法?

  林昊JCP在關於Java 納入模塊化後到底采用什麼標准爭論了非常久JSR 是個研討了多年的規范但最後不了了之Sun現在另起爐灶做Jigsaw但其實並沒有得到多大的擁護各App Server仍然采用OSGi作為其基礎平台就是最好的證明(參考閱讀JSR 被叫停 應用服務器押寶OSGi)可以說現在OSGi已經是Java領域模塊化動態化的事實性標准

   您認為理想的Java模塊化標准應該具備怎樣的特點?您對Java模塊化的發展有怎樣的期待?

  林昊Java模塊化標准應有明確的模塊定義模塊之間隔離機制的定義模塊交互機制的定義個人認為在模塊化這一方面OSGi已經做到非常好了當然如果是語言級能支持就更完美了

  對於Java模塊化的發展而言還是希望Sun能放開胸懷采用OSGi作為Java模塊化的實現基礎並納入語言級中


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27136.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.