Frage

Da Asp.net 2.0 gibt es das Provider-Modell. Auf der Implementierung Detail, ist ein Anbieter Klasse von Provider abgeleitet, die eine abstrakte Klasse ist eher als eine Schnittstelle, aber trotzdem die Provider-Modell ist es so, dass wir unterschiedliche Umsetzung in den aus haben die Bearbeitung der web.config nur um zu tauschen. Zum Beispiel, wenn Sie einen Blog App erstellen, können Sie eine BlogProvider haben: Provider, dann können Sie Implementierungen von BlogProvider haben wie:. SqlBlogProvider, OracleBlogProvider und sogar MockBlogProvider zum Testen

Nun, Repository-Muster wird immer beliebter, und ich glaube, es ist das gleiche Bedürfnis zu befriedigen, obwohl bei der Umsetzung Detail, die Sie normalerweise Schnittstellen verwenden, so IBlogProvider, und Sie würden verschiedene Implementierungen durch Konstrukteure injizieren anstatt Eigenschaften, aber im wesentlichen sehe ich nicht den Unterschied in dem, was diese zwei Muster gaben uns.

Ich persönlich fühle mich Provider Modell für mich bei der Umsetzung natürlicher ist. So gibt es einen Unterschied zwischen ihnen, oder sie sind nur die gleiche Sache mit verschiedenen Namen von verschiedenen Gemeinden gegeben?

Ich würde schätzen keine Kommentare zu diesem Thema, Vielen Dank, Ray.

War es hilfreich?

Lösung

Die Repository und Provider-Muster überlappen, aber nicht formell die gleiche Sache beschreiben. Ich würde sagen, fast das Repository eine Teilmenge des Provider ist. In der Praxis, ich denke, die Repository-Muster waren getragen von einem spezifischen Bedarf - abstrahiert Repositories - und in der Gemeinschaft in ein allgemeinere Abstraktion Muster entwickelt. In dieser Hinsicht sind sie gekommen, unterschiedliche Begriffe zu sein, die das gleiche Konzept zu beschreiben. Doch von den ursprünglichen Definitionen, sie unterscheiden sich in Umfang:

  • Der Zweck der Repository-Muster zu abstrakt ist die Besonderheiten der ein Repository von Daten weg von der Anwendung ab.

  • Der Zweck des Modells Provider zu abstrakt ist die Besonderheiten von alles weg von der Anwendung ab. Dies kann ein Datum-Repository sein, aber es ist ebenso oft eine Art von Logik.

Zum Beispiel in unserer Anwendung haben wir einen ContextFactoryProvider, die verschiedenen Arten von Logik enthält zum Bestimmen, welche ContextFactory zu verwenden. Es gibt keine Daten-Repository in diesem Fall; es ist rein Anwendungslogik, die beliebig geändert werden muss; die Provider-Modell ermöglicht es uns, die Einzel Prinzip Verantwortung verwenden jede Art von Logik in seine eigene Klasse zu isolieren und tauscht diese Logik einfach.

Andere Tipps

ich kann nicht mit Rex M. Der Zweck Anbieter Muster übereinstimmen ist die Unterstützung über eine abstrakte Schnittstelle, die individuell gestaltet zu schaffen, wo, wie der Zweck des Repository-Muster, einen Träger zu abstrakt zu schaffen ist die Details der Datenbank undelying.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top