2009-12-07 24 views
16

Ho un livello aziendale con alcuni oggetti business/POCO/entità/qualsiasi. Ho anche alcuni repository per l'accesso ai dati. Fino a questo punto, ho accesso ai repository direttamente dal mio livello di interfaccia utente. Sono a un punto in cui ho effettivamente bisogno di più classi che non sono CRUD dirette, quindi creerò alcune classi di business logic che faranno la logica, e CRUD, e ai repository non sarà possibile accedere UI più (che probabilmente dovrebbe essere stato fatto fin dall'inizio).Classi di business logic Denominazione

Come dovrei chiamare queste classi? L'unica cosa che posso pensare sono le classi di servizio, ma ho i servizi WCF effettivi in ​​questa applicazione, in modo da renderlo confuso. I servizi WCF useranno anche queste classi, quindi avere un servizio usando una classe di servizio sembra strano e confuso.

risposta

11

Uso anche la convenzione di denominazione "Servizio". È vero che il "servizio" è diventato un termine molto sovraccarico nel settore, ma ha più senso. Gli sviluppatori che esaminano il codice dovrebbero essere in grado di determinare la differenza tra un servizio Applicazione/Dominio o un servizio WCF e, mentre si ha un servizio WCF, le altre classi di servizio potrebbero sembrare confuse, penso che scoprirete che non lo è. L'idea di un servizio è che è un codice che esegue una funzione ed è disponibile per l'uso con un altro codice. Potrebbe trattarsi di un servizio interno o potrebbe essere un servizio esposto esternamente via http o altro. Ma l'idea di cosa fa il codice è la stessa.

3

Se i 'servizi' stanno orchestrando la logica di business utilizzando una serie di oggetti di dominio, è probabile che l'attuazione del Facade Pattern - così forse è possibile assegnare un nome con questo suffisso, ad esempio OrderManagementFacade

+0

Questo schema è nuovo per me, ma mi piace. È molto descrittivo a differenza del "servizio". –

+0

È descrittivo tranne quando non ci sono oggetti di dominio e questi "servizi" eseguono la logica da soli. – Vakho

3

Dalla tua descrizione, sembra come le classi WCF stanno attualmente implementando un servizio host. Io di solito classifico tali classi con un suffisso "ServiceHost". Li separa piacevolmente dalle classi di servizio effettive.

Quindi, ad esempio, si avrebbe la logica aziendale in una classe denominata "CustomerService" e la classe WCF corrispondente sarebbe denominata "CustomerServiceHost".

Problemi correlati