Java为什么要用pojo_为什么我不应该使用不可变的POJO而不是JavaBean?

我现在已经实现了一些Java应用程序,到目前为止仅实现了桌面应用程序。我更喜欢使用不可变对象在应用程序中传递数据,而不是使用带有变量(setter

和getter )的对象,也称为JavaBeans。

但是在Java世界中,使用JavaBeans似乎更为常见,而且我不明白为什么应该使用JavaBeans。就个人而言,如果代码仅处理不可变的对象而不是始终改变状态,则代码看起来会更好。

在 第15项:最小化可变性 , 有效的Java 2ed 中也建议使用不可变对象。

如果我有一个Person实现为 JavaBean 的对象,它将看起来像:

public class Person {

private String name;

private Place birthPlace;

public Person() {}

public setName(String name) {

this.name = name;

}

public setBirthPlace(Place birthPlace) {

this.birthPlace = birthPlace;

}

public String getName() {

return name;

}

public Place getBirthPlace() {

return birthPlace;

}

}

并Person实现为 不可变 对象:

public class Person {

private final String name;

private final Place birthPlace;

public Person(String name, Place birthPlace) {

this.name = name;

this.birthPlace = birthPlace;

}

public String getName() {

return name;

}

public Place getBirthPlace() {

return birthPlace;

}

}

或更接近structC:

public class Person {

public final String name;

public final Place birthPlace;

public Person(String name, Place birthPlace) {

this.name = name;

this.birthPlace = birthPlace;

}

}

我还可以在不可变对象中使用吸气剂来隐藏实现细节。但是由于我只将它用作一个,struct所以我倾向于跳过“获取器”,并使其保持简单。

简而言之,我不明白为什么使用JavaBeans更好,还是我可以并且应该继续使用我不变的POJO?

许多Java库似乎对JavaBeans都有更好的支持,但是随着时间的推移,对不可变POJO的更多支持可能会越来越流行?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值