根据我在互联网上找到的定义,JavaBean是一个满足以下条件的Java类:
-
所有实例属性都是私有的
-
所有实例属性都有公共getter和setter
-
该类有一个无参数构造函数
-
该类实现了Serializable接口
我想知道的是 if I add method to a Javabean can we still call it a Javabean?
例如 can we say that the following class is a JavaBean?
public class Person implements Serializable {
private String name;
public Person(){}
public String getName(){...}
public void setName(String name){...}
public void sayHello(){}
}
2 回答
是的,Java Bean肯定有行为 . 没有其他方法的Java Bean类的适用性非常有限,因为它们封装了没有有用行为的数据 .
Oracle mentions this in one of their tutorials on Java Beans:
是的,java bean可以有其他功能 . 引入该约定以结构化方式访问属性并添加诸如否决之类的功能 . 它用于例如swing中的GUI组件,其中bean机制用于配置GUI元素 . 特别是在GUI编辑器中,需要动态访问未知属性 . 当然,这些GUI组件具有许多功能 . 如果限制条件,则获得的是DTO(数据传输对象),它只传输数据但没有其他功能 .