La domanda è piuttosto semplice, cercherò di spiegare perché voglio alcune spiegazioni.
(Tutto questo è il mio parere per sviluppatori junior di 1 anno e mezzo, che può essere più che incompleto. Ecco perché sto facendo la domanda lì) .
- Aumenta l'accoppiamento tra classi, in quanto alcune classi richiedono altre classi e così via. Avere dei bean statici significherebbe chiamarli quando vuoi, senza che interferiscano effettivamente con i tuoi attributi: sarebbe come chiamare i metodi di utilità, ma sono scritti altrove.
- A volte è un incubo da gestire, specialmente quando hai una configurazione orientata al xml su un progetto legacy che devi gestire.
- Se hai bisogno di più dipendenze nella tua classe (ne ho una carina con qualcosa come 26 attributi che tento di fare a pezzi), vorrai ridurla a classi più piccole, ma quelle classi potrebbero aver bisogno ancora di un molti fagioli per funzionare, quindi abbatti di nuovo. Porta molta complessità alla scena.
Sto lavorando su un progetto LOC Java 70k-ish, ed è la mia prima esperienza sul campo. Sto cercando di migliorare il design di questa applicazione web e penso di aver perso i punti chiave dei bean Java con Spring.
Quindi la domanda è: sta usando classi statiche per bean una cattiva idea / un design scarso? Quale sarebbe una buona?
Domanda bonus: qualche consiglio su come decomporsi con eleganza (elegantemente?) un'applicazione Spring bean?
Grazie
PS: ho già letto su questo domanda correlata che tratta di più sugli stati delle classi / fagioli e su come evitarli, rispetto alla staticità dei fagioli come un design scarso / buono.
Modifica
(Ci scusiamo per il ritardo, non è stato possibile inserire il codice) Ecco un esempio di cosa può essere trovato e cosa mi ha fatto riflettere su questa domanda:
// Bean managed in a spring-context.xml
public class HugeMapper {
@Autowired
// Used here only
private MapperBean mapperBean;
@Autowired
// Used here only
private ServiceBean serviceBean;
@Autowired
// Used in a couple of classes
private UtilitaryBean utilitaryBean;
@Autowired
// Used in a couple of beans
private UsefulBean usefulBean;
@Autowired
// Used in nearly half the components
private OverusedBean overUsedBean;
// Code treatment ...
}
La domanda riguarda i fagioli usati in molti posti diversi. Rendendoli statici si eliminerebbe la dipendenza, ma non sono sicuro di quali sarebbero le conseguenze e se si tratta di un progetto buono / cattivo.