具有多个参数的设置器
Setters with multiple parameters
我对使用 setter 的正确方法有点困惑。
创建仅包含 1 个参数且与此对象类型相同的 setter 的方法是否更可取?
public void setWebsite(String website) {
if(website ==null){
this.website = "";
}else {
this.website = website;
}
}
但我有 2 个二传手,我对此表示怀疑
public void setAddressClientList(List<AddressClient> addressClientList,Client client) {
//Here we add the customer to the address
if (!addressClientList.isEmpty()) {
for (AddressClient addressClient : client.getAddressClientList())
{
addressClient.setClient(this);
this.addressClientList.add(addressClient);
}
}
}
和
public void setProfessional(String companyName,String vatNumber ) {
this.professional = !(companyName == null || vatNumber == null);
}
这是构造函数
public Client(Client client,Company company,Client lastInsertClient) throws ClientException {
setCompany(company);
setActive(true);
setCustomField(client.customField);
setWebsite(client.website);
setVatNumber(client.vatNumber);
setPhoneNumber(client.phoneNumber);
setCurrency("notImplementedYet");
setFaxNumber(client.faxNumber);
setCompanyName(client.companyName);
setSalutation(client.salutation);
setLastName(client.lastName);
setEmail(client.email);
setFirstName(client.firstName);
setClientNumber(lastInsertClient);
setProfessional(client.companyName,client.vatNumber);
setAddressClientList(client.addressClientList,client);
}
有人可以解释一下这是使用 setter 的最佳方法吗?如果最后 2 个设置器不正确,你会建议什么?
也许你不应该使用二传手,也许你应该。 Setter 主要用于设置您想要的对象的字段。通常你一次设置一个值(或者在这种情况下获取它),但在某些情况下,值应该成对操作等。这是一个严格的语义问题,几乎是哲学问题,但如果你想这样做根据人们使用的最佳实践,我建议您将该方法重命名为更具描述性的名称,以避免在其他人使用您的代码时造成混淆。如果这是一个单独的项目,你不妨适当地评论它并继续你的快乐。
我对使用 setter 的正确方法有点困惑。
创建仅包含 1 个参数且与此对象类型相同的 setter 的方法是否更可取?
public void setWebsite(String website) {
if(website ==null){
this.website = "";
}else {
this.website = website;
}
}
但我有 2 个二传手,我对此表示怀疑
public void setAddressClientList(List<AddressClient> addressClientList,Client client) {
//Here we add the customer to the address
if (!addressClientList.isEmpty()) {
for (AddressClient addressClient : client.getAddressClientList())
{
addressClient.setClient(this);
this.addressClientList.add(addressClient);
}
}
}
和
public void setProfessional(String companyName,String vatNumber ) {
this.professional = !(companyName == null || vatNumber == null);
}
这是构造函数
public Client(Client client,Company company,Client lastInsertClient) throws ClientException {
setCompany(company);
setActive(true);
setCustomField(client.customField);
setWebsite(client.website);
setVatNumber(client.vatNumber);
setPhoneNumber(client.phoneNumber);
setCurrency("notImplementedYet");
setFaxNumber(client.faxNumber);
setCompanyName(client.companyName);
setSalutation(client.salutation);
setLastName(client.lastName);
setEmail(client.email);
setFirstName(client.firstName);
setClientNumber(lastInsertClient);
setProfessional(client.companyName,client.vatNumber);
setAddressClientList(client.addressClientList,client);
}
有人可以解释一下这是使用 setter 的最佳方法吗?如果最后 2 个设置器不正确,你会建议什么?
也许你不应该使用二传手,也许你应该。 Setter 主要用于设置您想要的对象的字段。通常你一次设置一个值(或者在这种情况下获取它),但在某些情况下,值应该成对操作等。这是一个严格的语义问题,几乎是哲学问题,但如果你想这样做根据人们使用的最佳实践,我建议您将该方法重命名为更具描述性的名称,以避免在其他人使用您的代码时造成混淆。如果这是一个单独的项目,你不妨适当地评论它并继续你的快乐。