Direkte Instanzierung einer Klasse verhindern

30/06/2008 - 09:37 von Rafael G. | Report spam
Hallo NG,

ich habe eine Interface-basierte Geschàftslogik in meiner Anwendung.
Jedes Business-Objekt ist als ein Interface deklariert und als eine
konkrete Klasse ausimplementiert.
Nun will ich dass in der UI die Objekte nicht direkt instanziert werden
können, sondern, dass eine Factory aus der Business-Schicht die
konkreten BOs liefern. Meine Idee war nun die Konsturktoren der
konkreten Klassen als internal zu deklarieren.
Das wàre wohl auch die Lösung. Nur leider klappt es so nicht, denn ich
nutze LINQ To SQL fürs O/R-Mapping und dieses instanziert die BOs und
erwartet wohl öffentliche Konstruktoren, andernfalls bekomme ich eine
Fehlermeldung.
Nun meine eigentliche Frage. Habe ich sonst noch eine Möglichkeit eine
direkte Instazierung meiner konreten Business-Klasse zu unterbinden?

vg
Rafael
 

Lesen sie die antworten

#1 Michael Justin
30/06/2008 - 18:28 | Warnen spam
Rafael G. wrote:

Nun meine eigentliche Frage. Habe ich sonst noch eine Möglichkeit eine
direkte Instazierung meiner konreten Business-Klasse zu unterbinden?



Man könnte NDepend oder ein anderes Tool die generierten Assemblies
prüfen lassen, ob darin 'verbotene' Packages oder Klassen referenziert
werden. (Ein Standardverfahren um im Buildprozess die Einhaltung einer
bestimmten Software-Architektur zu kontrollieren.)

Viele Grüße
Michael Justin
SCJP, SCJA
betasoft - Software for Delphi™ and for the Java™ platform
http://www.mikejustin.com - http://www.betabeans.de

Ähnliche fragen