Konfigurator - Kompabilität der Komponenten



  • Ich suche nach einer Idee, wie man halbwegs elegant umsetzt, dass in einem Konfigurator einzelne Elemente über unterschiedliche Kriterien nur bedingt kompatibel miteinander sind.
    Beispielsweise für einen PC. Hier muss ein Motherboard ein gewissen CPU-Sockel haben, damit ein spezieller CPU darauf passt. Ähnliches für Grafikkarten, etc.

    Wenn ich so darüber nachdenke, dann fällt mir nur "hardcoding" ein. Also ein Motherboard hat Werte für CPU-Sockel-Typ, Grafikkarten-Sockel-Typ, etc. und eine CPU hat dann eben ein Sockel-Typ, eine Grafikkarte einen Sockel-Typ, etc. Wenn jetzt dann diese zwei Komponenten zu diesem Board konfiguriert werden sollen, dann wird halt im Code "hardcoded" einfach jeweils in einem if gecheckt, ob die Sockel der jeweiligen Komponenten zusammen passen. Real gibts natürlich noch einiges mehr, daher wäre die Liste der Abfragen dort dann ziemlich groß.

    Ich vermute fast, dass es halt nicht wirklich eleganter geht - aber ist vielleicht irgendjemandem ein Pattern oder irgendwas bekannt, um das ganze vielleicht etwas generischer / eleganter zu machen?
    Tue mir hier mit googeln schwer, finde nicht die richtigen Schlagwörter



  • Wieso hart kodiert ? Sowas legt man in einer Datenbank ab.
    Kann man doch alles über Tabellen darstellen.



  • pferdefreund schrieb:

    Wieso hart kodiert ? Sowas legt man in einer Datenbank ab.
    Kann man doch alles über Tabellen darstellen.

    Hardcodiert im Sine davon, dass halt jede weitere Bedingung wieder Code erzeugt, in Form von eines weiteren if-statements das wieder überprüft.
    Hab bei sowas immer das Gefühl, dass das unschön ist und man das eleganter machen könnte - sodass man Ende nur noch irgendwer was an den Objekten (in der DB) pflegt und dann ohne weitere Code-Anpassungen das Ganze Wirkung hat.

    Ich werde es einfach mal simpel programmieren und dann noch mal drüber nach denken, so theoretisch macht es wohl nicht viel Sinn.



  • Hi,

    Das riecht nach einer Aufgabe für SQL.

    Gruß Mümmel



  • was genau willst du hardcodieren? kannst du ein beispiel geben? (ich meine: code, z.B. fuer CPU <-> Motherboard )


Anmelden zum Antworten