Metodi statici in Business Layer per ottenere dati da DAL! Sì? No?

4

Alcuni consigli qui,

Ho incontrato un sistema in cui i contenuti DAL di centinaia di chiamate al comando sql sono suddivisi in una classe per tabella. C'è anche un livello aziendale che ottiene i dati da questo DAL, rendendolo più lontano da altri metodi e livelli in altri luoghi.

Quasi il 100% di questi Business Methods è puro inoltro di dati. Pochi di essi contengono la logica che influisce sui dati (perché i dati sono già ordinati / valutati o piuttosto in sql-commands / stored-procedures.

Ora alla vera domanda.
Tutti questi metodi nel livello aziendale sono statici.
Questo è facile perché posso chiamarli da ogni luogo senza istanziazione.

I metodi statici sono davvero preferibili?
Perché e come pensi?

Voglio dire che i metodi statici devono essere in heap e finora non riesco davvero a trarne profitto. Sento anche che l'intero sistema è molto difficile da eseguire il debug, specialmente ora perché il sistema ha V E R Y una grande varietà di tempi di risposta, senza molti cambiamenti nel carico da parte degli utenti.

    
posta Independent 11.05.2011 - 19:31
fonte

2 risposte

5

No, i metodi statici sono molto difficili da simulare o gestire tramite l'iniezione delle dipendenze, che probabilmente vuoi almeno a scopo di test.

    
risposta data 11.05.2011 - 19:52
fonte
4

I mean static methods need to be in heap

Eh?

I metodi statici possono indicare una progettazione meno che desiderabile, ma non possono essere di per sé fonte di problemi di prestazioni significativi. C'è un sovraccarico in più per un metodo di istanza.

Il design di solito soffre dell'uso di metodi statici, e io li uso raramente in circostanze molto strette - e quando li uso, di solito sono una funzione di utilità molto generale (e spesso metodi di estensione) o hanno uno scopo molto limitato di utilizzo (vale a dire, qualsiasi metodo statico specifico avrà pochissime classi che lo utilizzano, spesso solo uno e il metodo statico è privato).

    
risposta data 11.05.2011 - 19:42
fonte

Leggi altre domande sui tag