Beans Development Kit (BDK)分析(六) (轉)
5.其它
l InputStreamLoader. 作為ObjectInputStream的子類,為存在的Claoader載入類。主要用於載入基本型別的陣列。:namespace prefix = o ns = "urn:schemas--com::office" />
l IndentedStream.java 這個工具類是用來產生的
l InputStreamProducer.java 該介面按需提供一個輸入流
l Clasmpiler.java 編譯Java原始碼的類,形如sun.tools.javac.*的功能,其實現實就是javac的一個外包,exec來執行javac的外部編譯命令。
SimpleClassLoader.java
繼承了ClassLoader,被JarLoader用來載入類和資源。這是一個比較值得仔細看得類,實現了一個簡單的類裝載器。
l Timer.java 工具類,用於內部的時間操作
l FileExtension.java 用來過濾檔案的類,實現了FilenameFilter介面
l WindowCloser.java 工具類,用於捕獲目標視窗的關閉事件
l AboutDialog.java BeanBox的About Dialog
EditedAdaptor.java
屬性編輯介面卡,實現了PropertyChangeListener介面。它只有一個成員變數就是一個PropertySheet物件。
l public void propertyChange(PropertyChangeEvent evt)透過呼叫PropertySheet的wasModified方法來實現
l MessageDialog.java 彈出提示資訊的對話方塊類
l MessageHeader.java 定義訊息頭部
l ErrorDialog.java 丟擲一個模態的錯誤Dialog,繼承了MessageDialog
l CustomizerDialog.java 作為一個普通的編輯器,封裝了一個Dialog
IBSupport.java
使用該類來支援infoBus機制來和bean通訊
l OurLabel.java 用一個字串代表一個不可見的bean
l DoOnBean.java 在建立Bean的時候要執行的動作的介面
五. 作者後記
這些程式碼都是出自從事和設計很多年的資深專家之手,其中有很多技巧值得我學習,首先體會到的是使用單態,這樣的好處在於可以在任何地方直接得到最頂層的BeanBoxFrame,而不用到處是用傳遞引數的方法來實現。對於原始碼中所用的技巧,對於大家來說有的很熟悉,有的很陌生,同時要理解這些技巧也需要花一些功夫,只要理解為我所用,成就感還是蠻大的。
分析原始碼是每個學習開發的人都會遇到的事情,無論是分析一份經典的程式碼比如什麼的核心啊,或者比較濫的程式碼,就是公司以前的爛尾專案需要修改等。有的有文件,有的有註釋,有的什麼都沒有,所以分析原始碼難度不同,重要的是都先要提綱挈領的檢視所有的程式碼,領會大概流程和總體,然後由這個框架檢視關鍵的程式碼,這樣對原始碼的分析就會比較迅速,比較有代表性。最後就是學習其中值得自己關注的東西,比如設計思維,程式設計技巧等。
以前分析都沒有認真地用文件記下來,當真正的用文件記下來的時候,才發現很多東西都不太會表述,成了“茶壺裡面的湯圓,倒不出”。所以大家能夠多練習一下,將自己所看所想得到用文件描述下來,對自己日後的分析描述能力一定會有所提高。
畢竟不是專家級人物,分析難免有所紕漏和不當之處,請大家指出,謝謝!to:我的是chinascutface@.com">我的email是chinascutface@hotmail.com。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958621/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【java學習】JDK(Java Development Kit)JavaJDKdev
- ADRV9371 + Arria 10 SoC Development Kitdev
- 從零學腳手架(六)---production和development拆分dev
- 深入分析 Fiesta Exploit Kit
- (一)spring beansSpringBean
- LRAT-2000-KIT特殊故障的分析方法
- Spring自動裝配BeansSpringBean
- org.springframework.beans.factory.BeanCreationExceptionSpringFrameworkBeanException
- game development -- flowGAMdev
- Development Studio 2021,dev
- go-kit 微服務 日誌分析管理 (ELK + Filebeat)Go微服務
- Web Development Job in 4Webdev
- Giraph原始碼分析(六)——Edge 分析原始碼
- ABC 322 E Product Developmentdev
- SAP EPD - Enterprise Product Developmentdev
- Apache JMeter 5.4.1 Build DevelopmentApacheJMeterUIdev
- TGDC | Evolving AAA Game DevelopmentGAMdev
- could not autowire. No beans of 'xxxx' 問題解決Bean
- 玩轉web3第二篇——Web3UI KitWebUI
- webpack 開發模式管理 DevelopmentWeb模式dev
- Python Geospatial Development reading note(1)Pythondev
- SEHS4517 Web Application DevelopmentWebAPPdev
- IEMS5731 Software Design and Developmentdev
- Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of typeSpringFrameworkBeanException
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'aaaa' availableSpringFrameworkBeanExceptionAI
- Flutter框架分析(六)-- 佈局Flutter框架
- EVASH Ultra EEPROM Development Board User GuidedevGUIIDE
- The development prospect of SAP consultants in China in the next decadedevROS
- 上新啦KIT
- 上新啦!KIT!
- 玩轉 React(六)- 處理事件React事件
- springboot專案解決 No beans of 'UserDao' type found 問題Spring BootBean
- The injection point has the following annotations: - @org.springframework.beans.factory.annotation.SpringFrameworkBean
- 六、Alibaba sentinel之限流原理分析
- java集合原始碼分析(六):HashMapJava原始碼HashMap
- 轉六實名轉心因質見清狀kce
- Python 微服務開發--Python Microservices DevelopmentPython微服務ROSdev
- 報錯:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxx'is definedSpringFrameworkBeanException
- 轉轉OLAP自助分析實踐