Java Bean的一个很好的用例是什么?
我刚刚看到了
Java Beans规范.我觉得只使用getter,setter和空构造函数会使代码更加繁忙,而且开发人员需要管理track以正确设置所有必需的实例.
有人能指出一个使用这种设计的好用例吗?我无法理解它.我可以想到一个用途 – “当你需要创建一个类的实例,以便稍后在代码中决定它的数据成员.” 编辑:伙计们我不是在开始讨论.不想讨论优点/缺点.我不是在寻找像spring等当前的库,这使得它必须使用Beans.我正在寻找一个例子来了解Java bean带来的工程优势. “只是Java Beans设计可以帮助的一个例子” 解决方法
许多库和规范(例如JPA,JavaEL)使用Java Beans规范并完全依赖于该行为.
使用getter和setter的优点是可以在这些方法中添加代码,例如创建在运行时计算而不是存储在字段中的“虚拟”属性. 此外,使用getter和setter允许其他框架包装这些方法并提供其他功能,如更改日志记录等.在许多情况下,这是通过内部创建子类并覆盖getter和setter来完成的.用户不会注意到,因为“编织”或“代理”通常在运行时完成.例如,当您调用getter访问相关集合或实体时,Hibernate使用它来提供延迟加载功能. 更新: 根据请求,“虚拟”属性的示例: 假设您有一个Person bean,其字段为firstName和lastName.您可以通过提供以下getter来添加只读虚拟属性名称: public String getName() { return getFirstName() + " " + getLastName(); } 更新2: 关于为何需要getter和setter的另一个注释:这主要来自Java的工作原理.直接支持属性的语言(如C#)允许您编写类似person.firstName =“Joe”的代码;并且如果有一个setter仍然使用setter,或者如果该属性是只读的则抛出错误.因此,如果你为firstName添加一个setter,那么这些语言会在内部将firstName =“Joe”转换为setFirstName(“Joe”),而开发人员不必改变任何东西 – 这是一个非常优雅的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |