2009-12-07 16 views
16

Ich habe eine Business-Schicht, die einige Business-Objekte/POCOs/Entitäten/was auch immer hat. Ich habe auch einige Repositories für den Datenzugriff. Bis zu diesem Zeitpunkt habe ich direkt von meiner UI-Ebene aus auf die Repositorys zugegriffen. Ich bin an einem Punkt, wo ich tatsächlich einige Klassen brauche, die nicht direkt CRUD sind, also werde ich einige Geschäftslogik-Klassen erstellen, die die Logik und CRUD machen, und auf die Repositories wird nicht zugegriffen UI mehr (was wahrscheinlich von Anfang an gemacht worden sein sollte).Business Logic Classes Naming

Wie soll ich diese Klassen nennen? Das Einzige, woran ich denken kann, sind Dienstklassen, aber ich habe tatsächlich WCF-Dienste in dieser Anwendung, so dass es verwirrend sein wird. Die WCF-Dienste verwenden diese Klassen ebenfalls. Daher scheint es seltsam und verwirrend zu sein, dass ein Dienst eine Dienstklasse verwendet.

Antwort

11

Ich benutze auch die Namenskonvention "Service". Es ist wahr, dass der "Service" in der Branche ein sehr überladener Begriff geworden ist, aber er macht am meisten Sinn. Entwickler, die den Code überprüfen, sollten in der Lage sein, den Unterschied zwischen einem Anwendungs-/Domänendienst und einem WCF-Dienst zu ermitteln, und während ein WCF-Dienstaufruf andere Dienstklassen verwirrend erscheinen lässt, werden Sie feststellen, dass dies nicht der Fall ist. Die Idee eines Dienstes ist, dass es Code ist, der eine Funktion ausführt und für anderen Code verfügbar ist. Es könnte ein interner Service sein, oder es könnte ein Service sein, der extern über http oder was auch immer verfügbar gemacht wird. Aber die Idee, was der Code macht, ist die gleiche.

3

Wenn Ihre ‚Dienstleistungen‘ sind Business-Logik orchestriert eine Reihe von Domain-Objekten verwenden, sind Sie wahrscheinlich die Facade Pattern Umsetzung - so vielleicht Sie sie mit diesem Suffix nennen können, zB OrderManagementFacade

+0

Dieses Muster ist neu für mich, aber ich mag es. Es ist sehr beschreibend im Gegensatz zu "Service". –

+0

Es ist beschreibend, außer wenn keine Domänenobjekte vorhanden sind und diese "Dienste" die Logik selbst ausführen. – Vakho

3

Aus Ihrer Beschreibung, es klingt Wie die WCF-Klassen implementieren tatsächlich einen Dienst Host. Normalerweise benenne ich solche Klassen mit einem "ServiceHost" -Suffix. Es trennt sie schön von den eigentlichen Serviceklassen.

So hätten Sie beispielsweise Ihre Geschäftslogik in einer Klasse namens "CustomerService" und die entsprechende WCF-Klasse würde "CustomerServiceHost" heißen.