J'ai une classe comme ceci:Qu'est-ce qui est préféré, en utilisant setter ou builder?
public class Team
{
private final String id;
private final String subOrgId;
private final String teamName;
private final String costCenter;
private final String email;
private final String seaSecurityGroup;
private final String expesoSecurityGroup;
public Team(final String id, final String subOrgId, final String teamName, final String costCenter,
final String email, final String seaSecurityGroup, final String expesoSecurityGroup)
{
this.id = id;
this.subOrgId = subOrgId;
this.teamName = teamName;
this.costCenter = costCenter;
this.email = email;
this.seaSecurityGroup = seaSecurityGroup;
this.expesoSecurityGroup = expesoSecurityGroup;
}
public String getId()
{
return id;
}
public String getSubOrgId()
{
return subOrgId;
}
public String getTeamName()
{
return teamName;
}
public String getCostCenter()
{
return costCenter;
}
public String getEmail()
{
return email;
}
public String getSeaSecurityGroup()
{
return seaSecurityGroup;
}
public String getExpesoSecurityGroup()
{
return expesoSecurityGroup;
}
}
Maintenant, j'ai un cas d'utilisation où je dois en définir une nouvelle valeur de l'ID dans l'équipe de classe. Je suis d'avis que je devrais faire un setter dans la classe pour cela (déclarer id comme non-final) et l'utiliser. Cependant, je pense aussi que je devrais probablement aller de l'avant avec un constructeur et l'utiliser. Alors que l'écriture d'un setter est moins de travail, mais je veux m'assurer que je vais de l'avant avec le bon modèle. Qu'est-ce qui est recommandé dans un tel cas?
Merci!
Seulement vous savez à coup sûr, mais cela ressemble à tout autre POJO qui pourrait être un Javabean –
À mon avis, un constructeur n'est pas le bon modèle. Lorsque vous souhaitez utiliser des objets immuables, vous pouvez ajouter un setter qui crée une nouvelle instance avec uniquement la valeur définie. –
Je ne considèrerais pas cette classe immuable dans une classe mutable sans une pensée sérieuse, si elle est déjà utilisée, des suppositions ont probablement été faites à propos de son immutabilité. –