JavaBean与Java的Class的关系

奇葩TMD朵朵开

奇葩TMD朵朵开

2016-02-19 20:07

想要天天向上,就要懂得享受学习。图老师为大家推荐JavaBean与Java的Class的关系,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

     要说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这个类)。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  而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程序代码,且依据一定的模式制作。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  JavaBean在本质上和一般的类的确没差别。但在思想和使用上有些不同。如:JavaBean通过setXXX(),getXXX()等方法提供操作Bean中数据的方法,这样在Web应用程序开发时,页面设计者可以不用再和java代码打交道直接通过Html标签就可以完成相应数据的操作。这时Bean设计的目的,就在于将页面设计者和程序开发者隔离。至于重用性,我倒感觉和普通类差别不大。


展开更多 50%)
分享

猜你喜欢

JavaBean与Java的Class的关系

编程语言 网络编程
JavaBean与Java的Class的关系

浅析java class 文件

编程语言 网络编程
浅析java class 文件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

实例分析Java Class的文件结构

编程语言 网络编程
实例分析Java Class的文件结构

javaBean与EJB区别

编程语言 网络编程
javaBean与EJB区别

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Java编程中的“模式思想”与框架关系

编程语言 网络编程
在Java编程中的“模式思想”与框架关系

走出abstract class与interface的困惑

编程语言 网络编程
走出abstract class与interface的困惑

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Trojan-Clicker.HTML.IFrame.re 木马查杀

Trojan-Clicker.HTML.IFrame.re 木马查杀

Java应用技巧:对于 Cookie 的操作详解

Java应用技巧:对于 Cookie 的操作详解
下拉加载更多内容 ↓