国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

JavaBean與Java的Class的關系

2019-11-17 05:54:36
字體:
來源:轉載
供稿:網友

   要說Bean,就得提到Introspection和Reflection,還有“動態”。

一般而言,開發者社群說到動態語言,大致認同的一個定義是:“程序運行時,答應改變程序結構或變量類型,這種語言稱為動態語言”。從這個觀點看,Perl,Python,Ruby是動態語言,C++,java,C#不是動態語言。

盡管在這樣的定義與分類下Java不是動態語言,它卻有著一個非常突出的動態相關機制(其實C++也是這樣的動態機制):Reflection。這個字的意思是“反射、映象、倒影”,用在Java身上指的是我們可以于運行時加載、探知、使用編譯期間完全未知的classes。換句話說,Java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造(但不包括methods定義),并生成其對象實體、或對其fields設值、或喚起其methods。這種“看透class”的能力(the ability of the PRogram to examine itself)被稱為introspection(內省、內觀、反省)。Reflection和introspection是常被并提的兩個術語。Java中的類都有這樣的特點(有時間的話,可以看看Java的Class這個類)。

而JavaBean,首先是JAVA的一個類Class,然后再具有Bean的特點。簡單的說,就是符合一定規范(getter和setter的命名與變量名一致)的類。這樣的類能夠通過Java的reflexion機制,自動獲取屬性的值。常見的就是一些方法的命名getXXX(),setXXX(),一些事件接收者的注冊要遵守一定的規范。

由于JavaBean也是Java的一個Class類,所以JavaBean也有introspection和Reflection的性質。前者Introspection就是類的get和set方法,也就是類設定和獲取自身屬性值的方法。而后者Reflection就是java程序在運行中檢查自己包含對象的能力,即可以在加載對象后獲得對象屬性和方法的名稱,并且通過調用前者獲得一個值。還有一個是Bean的Methode和Interface的命名具有Design Pattern的特點(這個也是可以忽略的。)

bean 提出來的目的是組件化,跟其他程序語言比如 Delphi 中提出的控件是一樣的, 不過它給出了一些規范, 假如大家都遵守了, 就可以使用同一種機制來調用不同的控件。只是為了更方便重用性更強而已,也不是專門為 web service 而提出了。相比之下,GUI類的 bean 跟一般概念上的組件更相象。另外Bean的class比一般的class有許多規范與限制,所以它們的實現機制不一樣。

換句話說,JavaBeans其實就是一般的JAVA代碼片段,只不過是考慮了代碼的重用而變成一些“組件化”了的java程序代碼,且依據一定的模式制作。

JavaBean在本質上和一般的類的確沒差別。但在思想和使用上有些不同。如:JavaBean通過setXXX(),getXXX()等方法提供操作Bean中數據的方法,這樣在Web應用程序開發時,頁面設計者可以不用再和java代碼打交道直接通過Html標簽就可以完成相應數據的操作。這時Bean設計的目的,就在于將頁面設計者和程序開發者隔離。至于重用性,我倒感覺和普通類差別不大。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 濉溪县| 迁西县| 邵东县| 理塘县| 三台县| 洪雅县| 新余市| 津市市| 兰溪市| 且末县| 连南| 华蓥市| 白水县| 西宁市| 二手房| 聂荣县| 安徽省| 米泉市| 高青县| 武夷山市| 克什克腾旗| 镇安县| 邳州市| 五家渠市| 西丰县| 太原市| 宜兴市| 九龙城区| 静宁县| 丹江口市| 巨野县| 瑞安市| 甘肃省| 论坛| 怀化市| 永定县| 玛多县| 西青区| 白水县| 西安市| 阿拉尔市|