Quando ho un oggetto che ha molti campi è meglio averli tutti come campi o cercare di trovare raggruppamenti logici come oggetti propri e renderli quei campi?
Credo che si tratti di un male più grande, di troppi oggetti o di troppi campi in un oggetto.
Meno oggetti, più campi:
public class LotsOfFields Object {
private Foo foo;
private Bar bar;
private Baz baz;
private Dog dog;
private Cat cat;
private Goat goat;
// Getters and setters...
}
Altri oggetti, meno campi:
public class LessFields Object {
private ClicheMetaSyntacticVariables vars;
private Animals animals;
// Getters and setters...
}
public class ClicheMetaSyntacticVariables {
private Foo foo;
private Bar bar;
private Baz baz;
// Getters and setters...
}
public class Animals {
private Dog dog;
private Cat cat;
private Goat goat;
// Getters and setters...
}
Per inciso, se l'approccio "più oggetti" è migliore, è meglio avere le classi come membri della classe originale (supponendo che non siano mai state usate altrove) o che vanifichi lo scopo di non ingombrare un oggetto?
Edit to defend my question not being a duplicate: This is about a more specific issue than "what is the purpose of a class" and to me that alone is enough. To go on, I am really talking more about what makes a more readable/usable class, I'll take the blame for not specifying that though.