2016-12-31 2 views
1

Ich erstelle eine Zahlungsrechnung, die einige Informationen hat, die Hauptkategorien und Unterkategorien, Die Hauptkategorien können einige Unterkategorien enthalten, die unterschiedliche Preise haben. Und der Administrator kann die Kategorien hinzufügen.C# Bestellung/Hinzufügungstypen

Während Auftrag anlegen:

public void OrderAdd(Cat1,cat2,cat3) 
    { 
    // add Method Here 
    } 

Ich habe keine feste oder konstante Anzahl von Kategorien kann hinzugefügt werden, und es kann auch gelöscht werden, ich weiß nicht, wie dies zu tun die Reihenfolge Methode sollte die Kategorien immer nehmen (der Kunde kann nur Unterkategorien Auswahl) Beispiel:

der Kunde, die eine Reparatur Garage gehen wir ihm ein 5 Kategorien geben und er Unterkategorien für alle jene Kategorien auswählen müssen

Beispiel:

cat 1 => SubType 2 => Price. 
cat 2 => SubType 6 => Price. 
cat 3 => SubType 2 => Price. 
cat 4 => SubType 4 => Price. 
cat 5 => SubType 8 => Price 
Final Price => ... 

Also vielleicht der Kunde kommt wieder nach 15 Tagen Das Menü hat sich geändert Es hat nur drei Kategorien jetzt etc ...

Die Hauptkategorien ist keine Konstante.

Wie kann ich eine Bestellmethode für diesen Typ erstellen?

Antwort

1

Ich bin mir nicht sicher, ob ich Ihre Frage verstehe, aber es scheint, dass Sie vielleicht einen Delegaten für Kategorien erstellen möchten, zu dem Sie einzelne Unterkategorien hinzufügen können, von denen jede einen Preis zurückgibt. Auf diese Weise können Sie einfach + = verwenden, um eine neue Unterkategorie hinzuzufügen, oder - =, um diese zu subtrahieren, und die Delegate-Kategorie wird weiterhin wie erwartet ausgeführt. Auch hier bin ich mir Ihrer Frage nicht sicher. Möglicherweise möchten Sie eine Kundenklasse erstellen, deren Instanzen Methoden für Kategoriedelegierte und Unterkategorien enthalten. Verwenden Sie am besten das IObserver/IObservable-Muster, um diese Eigenschaften zu aktualisieren, wenn sich Unterkategorien ändern. Dies hilft dabei, das OOP-Design beizubehalten und Dinge wiederverwendbar und aktualisierbar zu halten.

+0

Hallo danke für deine Antwort, um es einfach zu machen Sagen wir, ich habe eine Order-Methode, die 5 Parameter cat1, cat2, cat3, cat4 verwendet. Diese Methode kann später geändert werden, um mehr oder weniger Parameter zu verwenden hinzugefügt und gelöscht werden – Huster

+0

Sie können eine Liste als Parameter hinzufügen, auf diese Weise können Sie so viele Kategorien, die Sie benötigen, verarbeiten. ex: public void OrderAdd (Liste currentCategories) {foreach (var Kategorie in currentCategories) Kategorie.//add Methode hier. –

+0

Um Unterkategorien in die Kategorien einzubinden, könnten Sie eine Schnittstelle ISubCategoryList erstellen, die für jede Kategorie eine Liste von Unterkategorien enthält und diese zugänglich und aktualisierbar macht. –