2012-03-27 4 views
0

Ich erstelle ein einfaches Messaging-System in WCF und habe ein minimales Repository namens MessageRepository implementiert.Kombinieren von Service- und Repository-Schichten

Es implementiert den Vertrag IMessageRepository, die wie folgt lautet:

using System; 
using Violet.Model.Entities; 

namespace Violet.Model.Abstract 
{ 
    public interface IMessageRepository 
    { 
     void DeliverMessage(string message_from, string message_to, string message_text); 
    } 
} 

Jetzt bin ich verwirrt, ob eine separate Dienstschicht IService zu implementieren, die die Modellschicht ruft mit der Datenbank zu interagieren oder die [ServiceContract] dekorieren und [OperationContract] Attribute im IMessageRepository selbst, um die Ebenen in meiner Anwendung zu minimieren.

Was halten Sie für einen besseren Ansatz, wenn die Anwendung mit der Zeit wächst?

Antwort

2

Im Allgemeinen ist es wahrscheinlich keine gute Idee, Ihre Datenzugriffsebene direkt über einen Dienst verfügbar zu machen. Indem Sie einen echten Service erstellen und Ihr Repository einfach nutzen, haben Sie die Flexibilität, diese unabhängig voneinander zu ändern.

Im Allgemeinen wird dies Single Responsibility Principle

genannt