The builder pattern is one of the most popular creation patterns, and it has numerous benefits. I specifically want to understand if immutability of the model object itself is one of the key benefits. All the while I thought it was, but I could not find any backing documentation on the same. Consider this scenario, you are creating an object from a network call (from json let's say). We create model objects and it has a Builder inline. This is what everybody does. The members of the model are also private. Since this is a network object, the members won't have setters. My doubts are
- With builder securing object creation, do we need to make members
private. - Can we instead keep them
public finaland eliminate need forgetter() - In general (irrespective of the above two points), shouldn't all non-settable members be
final? I don't see many people making members final, why is it so? Is this a good approach or not?
Aucun commentaire:
Enregistrer un commentaire