Ich verstehe die Theorie hinter der Fabrik Design-Muster jetzt, aber kann nicht scheinen, um realistische Beispiele für die Verwendung zu finden. Kann jemand so freundlich sein, einen anzubieten?Beispiele für die Verwendung für die Fabrik Design-Muster in C#
Antwort
Es gibt ein paar Varianten von Fabrikentwürfen: abstrakte Fabrik, Fabrikmethode, etc ... Da Sie an einem realen Beispiel interessiert sind, dachte ich, ich würde teilen, was ich tat.
Als Beispiel verwendete ich eine Datenzugriffsfactory, um eine konkrete Instanz einer Datenzugriffsklasse zurückzugeben. Die logische Klasse weiß nicht, welche Datenbank verwendet wird. Es fragt einfach die Factory nach einer Datenklasse und verwendet dann diese Datenklasse.
Dies ist die Methode innerhalb meiner DataAccessFactory-Klasse. Es ist verantwortlich für BEMESSENDE die Datenklasse zu verwenden, und es an den Aufrufer zurückkehrt:
public static T GetDataInterface<T>() where T : class
{
Assembly assembly = Assembly.GetExecutingAssembly();
T theObject = (from t in assembly.GetTypes()
where t.GetInterfaces().Contains(typeof(T))
&& t.GetConstructor(Type.EmptyTypes) != null
&& t.Namespace == _namespace
select Activator.CreateInstance(t) as T).FirstOrDefault() as T;
return theObject as T;
}
Und das ist, wie einer meiner Business-Logik-Klassen eine DAL Anfrage macht:
return DataAccessFactory.GetDataInterface<IApplicationData>().GetAll();
Die Business-Logik ist vollständig von der Datenzugriffsschicht entkoppelt. Ich hoffe, das hilft.
Da Ihre Frage ist sehr allgemein nur einige Links zu den Themen mit Beispielen etc .:
- http://www.dotnetperls.com/factory
- Factory Design Pattern (needing critique)
- http://www.dofactory.com/Patterns/PatternAbstract.aspx#_self2
- http://www.codeproject.com/Articles/57421/Design-Patterns-Part-2-The-Factory-Pattern
Das Muster verwendet wird, im .NET Framework - zum Beispiel mit WebRequest
.
Es ist nicht * wirklich * extrem allgemein - ich frage nach einem realistischen Beispiel dafür, wo das Factory-Design-Muster verwendet werden kann. Wie fortgeschritten oder in welcher Weise das Beispiel des Fabrikdesignmusters ist, liegt im Ermessen desjenigen, der sich entscheidet, meine Frage zu beantworten - es wäre gut, eine Reihe von Beispielen zu sehen. +1 für deine Antwort, danke für die Links, ich lese sie jetzt. – SkonJeet
@SkonJeet Sie sind willkommen :-) hinzugefügt ein Beispiel aus dem .NET-Framework ... – Yahia
Nochmals vielen Dank ... – SkonJeet
- 1. Beispiele für die Verwendung von Generics in .Net (C#/VB.NET)
- 2. Beispiele für die Verwendung von Lisp-Makros für
- 3. Gute Beispiele für die Verwendung eines scharfen Pakets für Bildoperationen?
- 4. Beispiele für getnextpage Verwendung in der Twilio API für C#?
- 5. Beispiele für die Verwendung Thread sicher Singleton in mehreren Threads
- 6. Beispiele für die Implementierung von Abfrageobjekten
- 7. Beispiele für die Verwendung von SCons mit Knitr
- 8. Praktische Beispiele für NLTK Verwendung
- 9. Welches dieser Beispiele steht für die korrekte Verwendung von DDD?
- 10. Wo finde ich Beispiele für die Verwendung von bsddb?
- 11. Volle Beispiele für die Verwendung von pySerial Paket
- 12. Praktische Beispiele für die explizite Cursor-Verwendung von Orakel
- 13. Beispiele für die Verwendung von Avro in Ruby für Interkommunikation für Microservices
- 14. Welches Designmuster für meinen Anwendungsfall?
- 15. ZMQ-Kompilierungsprobleme für C++ - Beispiele
- 16. Beste Websites für Designmuster?
- 17. Beispiele für Kontextmenüs, die keinen Rechtsklick erfordern
- 18. Redux: Meinungen/Beispiele für die Backend-Persistenz?
- 19. Beispiele für die Stärken von NodeJS
- 20. Beispiele für "modernes C++" in Aktion?
- 21. Was sind Beispiele für Speicherbarrieren in C++?
- 22. Welches Designmuster für die Validierung zu verwenden ist
- 23. Beispiele für implizite Variablenzuweisung in C#
- 24. Beispiele für asynchrone Interaktion in C# .Net?
- 25. Echte Beispiele für Reflection
- 26. Ressourcen und Beispiele für die Verwendung von MEF für DI/IoC
- 27. Inpolygon für Python - Beispiele für die Methode "matplotlib.path.Path" contains_points()?
- 28. Beispiele für "Objektwörterbücher" in Anwendungsprotokollen
- 29. Was sind die coolsten Beispiele für Metaprogrammierung, die Sie in C++ gesehen haben?
- 30. Beispiele für Winsock?
Bandwagon - der einzige Grund, warum diese Frage geschlossen werden soll. Ich bin ganz Ohr für andere Gründe ... – SkonJeet