Bee*_*ope 3 java oop coding-style
假设我在java中有一个方法,它在数据库中查找用户并返回他们的地址和他们所在的团队.
我想从方法中返回两个值,并且不希望将方法拆分为两个,因为它涉及数据库调用,并且拆分涉及调用次数的两倍.
鉴于中到大型软件项目的典型问题,最佳选择是什么?
whatGoesHere getUserInfo(String name) {
// query the DB
}
Run Code Online (Sandbox Code Playgroud)
我知道这个问题与现有的问题有些重复,但是每一个问题都有一些元素使得它与这个例子不同,我认为值得再次提问.
你有一些选择.最大的OOP将创建一个类来封装这两个属性,就像那样
private class UserInfo {
private Address address;
private Team team;
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要一个简单的解决方案,您可以返回一个对象数组:
Object[] getUserInfo(String name) {
// query the DB
return new Object[]{address,team};
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想将此方法公开给某个库,您可以使用某些接口来使用这些属性,如下所示:
class APIClass{
interface UserInfo{
public Address getAddress();
public Team getTeam();
}
UserInfo getUserInfo(String name) {
// query the DB
return new UserInfo(){
public Address getAddress(){ return address; }
public Team getTeam(){ return team; }
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1566 次 |
| 最近记录: |