Esiste una terminologia standard per una classe che in realtà fa tutto il lavoro pesante per creare una classe correlata stupida (immutabile)?

1

Diciamo che la creazione / il calcolo di tutte le proprietà del frutto richiede molta logica, e alla fine si desidera semplicemente avere un oggetto POCO immutabile molto semplice.

Quindi, non ha alcun metodo, il che rende davvero facile ragionare, e anche facilmente e chiaramente serializzabile.

In questo momento ho nomi come questo:

class BananaCalulator { public Banana Calculate() }
class Banana {}
class AppleCalulator { public Apple Calculate() }
class Apple {}

È un modello comune? Esiste una terminologia più comune al posto di Calcolatrice?

    
posta Dirk Boer 04.04.2015 - 14:21
fonte

1 risposta

4

La Gang of Four conosce due schemi che descrivono oggetti che non fanno altro che creare altri oggetti.

Uno è la fabbrica.

L'altro è il Builder.

La differenza tra i due è che una Factory riceve tutti gli argomenti con un singolo metodo-call e solitamente può essere riutilizzata per creare più oggetti dello stesso tipo, un Builder ha un certo numero di metodi che definiscono le proprietà dell'oggetto creato fino a quando non viene chiamato un metodo build. Il Builder è spesso (ma non necessariamente) non riutilizzabile in seguito.

BananaFactory factory = new BananaFactory();
Banana b1 = factory.createBanana(100, 200);
Banana b2 = factory.createBanana(110, 210);

BananaBuilder builder = new BananaBuilder();
builder.setLength(100);
builder.setWeight(200),
Banana b3 = builder.build();
    
risposta data 04.04.2015 - 18:17
fonte

Leggi altre domande sui tag