Wie kann ich die Factory-Klasse im Factory-Design-Muster statisch machen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich die Factory-Klasse im Factory-Design-Muster statisch machen?

Post by Anonymous »

Ich habe ein E-Book gelesen, in dem Designmuster erklärt wurden, und nachdem ich das Fabrikdesignmuster erklärt hatte, wurden darin einige Verbesserungen vorgeschlagen. Eine davon bestand darin, die Fabrik statisch zu machen.

Die Fabrik (oder einen Fabrikmanager) statisch machen: Dies erleichtert die Verwendung, erfordert jedoch zusätzliche Einrichtung.

Aber C# erlaubt keine Vererbung von statischen Klassen. Wie kann ich in diesem Fall also verschiedene Fabriken von der Hauptfabrikklasse (statisch) erben?< /p>
Zum Beispiel, wenn ich eine Fabrik baue BeeFactory als Basisklasse, die über eine Funktion verfügt, die ein Produkt IBee:
zurückgibt

Code: Select all

public BeeFactory
{
public abstract IBee GetBee();
}
Und erstellen Sie zwei Unterklassen, HoneyBeeFactory und QueenBeeFactory, die von der Basisklasse erben und unterschiedliche Implementierungen dessen haben, was mit dem Produkt geschehen soll:

Code: Select all

public HoneyBeeFactory : BeeFactory
{
public override IBee GetBee()
{
IBee bee = new Bee();
bee.isMakeHoney = true;
return bee;
}
}

Code: Select all

public QueenBeeFactory : BeeFactory
{
public override IBee GetBee()
{
IBee bee = new Bee();
bee.isMakeHoney = false;
return bee;
}
}
Wenn ich also die Factory-Basisklasse statisch gemacht hätte:

Code: Select all

public static BeeFactory {...}
Die beiden Unterklassen würden einen Kompilierungsfehler verursachen. Und wenn ich die Factory-Klasse zur einzigen existierenden Factory machen würde, wie könnte ich dann unterschiedliche Implementierungen für die Produkterstellung haben?
Mir scheint, dass eine statische Gestaltung der Factory-Basisklasse das Design selbst kaputt macht Da ich nicht davon erben kann, wie kann ich das statische Klassenkonzept im Factory-Muster implementieren? oder worauf bezieht sich das Buch?? Vielen Dank im Voraus.
Der Link zum Buch (https://unity.com/resources/design-patterns-solid-ebook)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post