我对使用二传手的正确方法有些困惑。

创建仅具有相同对象类型的1个参数的setter的首选方法是这种方法吗?

public void setWebsite(String website) {
    if(website ==null){
        this.website = "";
    }else {
        this.website = website;

    }
}


但是我有两个怀疑者

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);


}


有人可以解释这是使用二传手的最佳方法吗?如果最后两个设置员不正确,您会提出什么建议?

最佳答案

也许您不应该使用二传手,也许应该。设置器通常用于设置所需对象的字段。通常,您一次设置一个值(如果是这样,则设置一个值),但是在某些情况下,应成对地操作值等。这是一个严格的语义和几乎是哲学的问题,但是如果您想这样做根据人们使用的最佳实践,我建议您将方法重命名为更具描述性的名称,以避免在其他人使用您的代码的情况下造成混淆。如果这是一个单独的项目,您最好适当地对其进行评论,然后按照自己的喜好进行。

09-05 01:02