Should ClientQueryBuilder
class be in the Service
namespace?
Sì e no e tutto dipende da come tu definisci un Servizio e cosa vuoi che l'utente veda per primo. Per me, in generale, un servizio è una classe che fa qualcosa utile e non solo memorizza i dati. Se ClientQueryBuilder
è una cosa del genere, questo aiuta a creare un ClientQuery
, quindi potrebbe essere visto come un servizio.
Per lo più uso lo spazio dei nomi Services
per inserire tipi che sono difficili da categorizzare con altri criteri. Se avessi un solo builder lo lascerei nello spazio dei nomi Services
, ma se ne avessi di più, creerei un altro spazio dei nomi Builders
nello spazio dei nomi Services
e inseritelo lì.
namespaces help you to organize your project in a miningful way
Sì, lo fanno. Puoi usare gli spazi dei nomi per nascondere tipi più speciali e usati raramente direttamente e inserire tipi più comuni nello spazio dei nomi principale in modo che sia più facile trovarli e usarli.
Ad esempio, se disponi di un framework che fornisce classi per analizzare qualcosa, preferiresti non inserirli nello spazio dei nomi Parsers
, in modo che dopo aver installato il pacchetto potresti utilizzarli immediatamente perché sono ciò di cui tratta questo pacchetto. D'altra parte se alcuni parser supportano solo il tuo framework / libreria, sarebbe meglio nasconderli nello spazio dei nomi Parsers
in modo che non interferiscano con intellisense perché il loro uso è piuttosto improbabile in ogni caso .
Nel tuo caso il builder non è solo un parametro ... è uno strumento per creare una query in modo che abbia tutto il diritto di essere la parte dello spazio dei nomi dei servizi (supponendo che sia davvero un builder così come lo conosciamo).