Java bean 概念

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 接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值