Devo usare le funzioni concatenate in Java?

3

Di tanto in tanto, avrò una classe in Java che accetta una moltitudine di parametri, tuttavia, a volte quando creo un oggetto di questa classe, non ho bisogno di usare tutti i parametri. A partire da ora, di solito i parametri sono nulli o 0 a seconda del tipo. Tuttavia, sarebbe più facile se avessi appena creato dei metodi concatenati per impostare determinati campi nella classe?

Quindi, invece di:

MyClass someInstance = new MyClass(param0, null, null, 0, null, param5);

Avere qualcosa di simile:

MyClass someInstance = (new MyClass()).setParam0(param0).setParam5(param5);

Questo va contro OOP o il solito paradigma di Java?

    
posta Ivan 03.10.2011 - 18:06
fonte

2 risposte

15

Questo è il posto perfetto per il Pattern Builder.

MyClass someInstance = (new MyClassBuilder())
    .setParam0(param0)
    .setParam5(param5)
    .build();
    
risposta data 03.10.2011 - 18:15
fonte
1

anche se non è particolarmente non comune vedere le catene ...

l'approccio dei metodi concatenati (per me) suggerisce che si sta trattando con una classe che è un blob di dati in cui tutti / la maggior parte dei campi / membri sono accessibili al pubblico e modificabili e che non c'è davvero alcuna separazione tra membri e interfaccia (ad es. poca sostanza oltre le persone che accedono al pubblico). queste classi tendono a non gestire correttamente le loro dipendenze e, quando lo fanno, è spesso piuttosto costoso rispetto all'inizializzazione vera e propria. anche le astrazioni sono probabilmente deboli.

a quel punto, la classe si è davvero spostata da una buona OOD perché in genere hanno violato più principi / concetti OOD.

    
risposta data 03.10.2011 - 18:27
fonte

Leggi altre domande sui tag