Java bean 概念

来源:互联网 发布:淘宝运作流程图 编辑:程序博客网 时间:2024/05/22 17:48

Java bean 概念


JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性。

举个例子,假如有人要用Java实现一个单向链表类,可能会这样写:

public final class JavaIntList {  static class Node {    public Node next;    public int value;  }  public Node head;  public int size;              //保存List大小}

上述实现为了能够快速获取链表的大小,把链表大小缓存在size变量中。用法如下:

JavaIntList myList = new JavaIntList();System.out.println(myList.size);

有一天,决定要节省内存,不要缓存size变量了,把代码改成这样:

public final class JavaIntList {  static final class Node {    public Node next;    public int value;  }  public Node head;  public int getSize() {        //外部获取List的size方法,采取函数计算    Node n = head;    int i = 0;    while (n != null) {      n = n.next;      i++;    }    return i;  }}

上述不是通过每个List保存一个int size,而是每次获取的时候,再进行getSize()计算。

我们知道更新版本,必须保持向后兼容性。sun在设计Java语言时,也懂得这个道理。所以Java标准库中,绝对不会出现public int size这样的代码,而一定会一开始就写成:

private  int size;public getSize(){    return size;    }

让用户一开始就使用getSize,以便有朝一日修改getSize实现时,不破坏向后兼容性。这种public int getSize() { return size; }的惯用手法,就是Java Bean。

通俗来说java Bean遵循这一的一套规范:

  1. 所有属性均为 private
  2. 提供默认的构造方法
  3. getter,setter来获取 private 成员变量
  4. 实现 serializable 接口
1 0