首页 / JAVA / 填充对象时Java返回方法的良好做法
填充对象时Java返回方法的良好做法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了填充对象时Java返回方法的良好做法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2251字,纯文字阅读大概需要4分钟。
内容图文
![填充对象时Java返回方法的良好做法](/upload/InfoBanner/zyjiaocheng/681/ed904589b65b4558a2c3141962524463.jpg)
抱歉,标题含糊.如果有人有更好的解释方式,我将进行编辑.
假设我有一个类,它创建了许多实例,并具有许多由不同方法填充的属性.传递对象并在方法中填充属性是不好的做法吗?我将尝试通过一个简单的例子进行解释:
public class User {
private String surname;
private String name;
public String getSurname() {
return surname;
}
public void setSurname( String surname ) {
this.surname = surname;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
}
// Passing the object as parameter and returning the object in each methods
// In this case getNameFromSomewhere returns a User object
public User getUser(){ //edit: my mistake here
User user= new User();
user = getNameFromSomewhere(user);
user = getSurnameFromSomewhere(user);
return user;
}
就我而言,getNameFromSomewhere在服务器上进行搜索,我想知道是否应该更改所有方法,以便它像属性一样返回一个字符串,然后执行:
// Alternative ?
public User getUser(){ //edit: my mistake here
User user= new User();
user.setName(getNameFromSomewhere()); // getNameFromSomewhere return string
user.setName(getSurnameFromSomewhere());
return user;
}
*注意:我要填充字符串,整数,列表属性.
编辑:我写了一个替代方案,我只是想知道,从性能角度来说,是否最好将User作为参数传递,然后为每个属性返回填充有1个属性的参数,或者我是否应该仅使用User.set方法填充属性,并让我的方法返回属性类型. (这更清楚了吗?)
解决方法:
您的代码的问题在于User类通过setter方法公开了其内部结构,从而破坏了信息隐藏的原理.您的方法可能会导致无法维护的代码库,即将很难跟踪可能会修改User对象的所有组件.
我认为更好的方法是让构造函数直接获取构建User所需的信息.
public class User {
private String surname;
private String name;
public User(String name, String surname) {
this.name = name;
this.surname = surname;
}
public String getSurname() {
return surname;
}
public String getName() {
return name;
}
}
然后,您可以通过以下方式构建用户:
public User getUser() {
User user = new User(getNameFromSomewhere(),
getSurnameFromSomewhere());
return user;
}
这样,您可以确定用户来自何处,并且无法在其他任何地方对其进行修改.而且,此代码符合单一责任原则,因为方法getNameFromSomewhere和getSurnameFromSomewhere拥有检索名称/姓氏的唯一责任.
最佳方法应该是使用User类的不变实现的方法.这意味着,每次需要修改对象时,都将根据需要的信息从该对象创建一个副本.这样,整个测试过程变得更加简单.
内容总结
以上是互联网集市为您收集整理的填充对象时Java返回方法的良好做法全部内容,希望文章能够帮你解决填充对象时Java返回方法的良好做法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。