I metodi statici "Builder" violano SOLID?

3

Sto scrivendo una classe che consiste principalmente in responsabilità di archiviazione dei dati. Il contesto per l'uso di questa classe, in generale, sarà recuperare una serie di oggetti di questo tipo per la visualizzazione successiva. Alla luce di ciò, ho creato un metodo statico, build_question_array() , che interroga il database, crea un'istanza degli oggetti e restituisce l'array. Questo viola il principio "SOLID"?

    
posta syrion 02.10.2011 - 02:26
fonte

1 risposta

2

In primo luogo, non obbedisce al principio Open / Closed, perché non sarà possibile modificare nulla in fase di runtime in un metodo statico.

Non so se obbedisce al principio di Responsabilità Unica, perché non so se implementa o delega tutto il suo lavoro. Se lo implementa, non obbedisce a questo principio.

EDIT: se quel metodo statico è all'interno della classe della struttura dati, sicuramente non obbedisce a SRP. La classe dati dovrebbe non conoscere o preoccuparsi dei suoi vari tipi di usi.

Il principio di sostituzione di Liskov non è un fattore dato che è solo una classe, ed è un metodo statico.

Anche la segregazione dell'interfaccia non si applica qui.

Inversione di dipendenza è discutibile qui, perché se non puoi passare un delegato a questa funzione o stai utilizzando un linguaggio dinamico, stai facendo in modo che ognuno dei tuoi clienti dipenda da questa sola implementazione di questa funzionalità.

Quindi, tutto sommato, no, non lo è.

    
risposta data 02.10.2011 - 02:34
fonte

Leggi altre domande sui tag