Design Pattern vererbte Eigenschaften



  • Hi,
    ich weiß leider nicht in welchem Bereich ich hier Design Probleme posten kann, daher bin ich hier gelandet. Welche Datenstruktur, Design Pattern etc. nutzt man wenn man sowas wie CSS machen möchte, wo man Eigenschaften von einer Haupt CSS klasse erbt und z.B. dann nur die Farbe ändert? Das Zielobjekt bekommt dann nicht die gesamte CSS-Klasse übergeben, sondern nur das was sich zur Hauptkomponente geändert hat, in diesem Fall die Farbe. Weiß nicht wie ich das besser beschreiben kann. Solch einen Mechanismus möchte ich in meinem Programm einbauen, weiß aber nicht wie ich das anstellen soll oder nach welchen Fachbegriffen ich da googeln muss.



  • Das kann man relativ plump aufbauen, indem man z.B. eine Klasse macht, die die Properties als Liste verwaltet. Und zusätzlich einen Zeiger auf eine andere Instanz der gleichen Klasse hat, die eben weitere Properties hat. Dann würde das Zielelement auf ein Objekt verwalten, das in der Liste nur die Farbe hat, und eben einen Zeiger auf die parent Klasse.

    Das wäre aber nur eine grobe Idee. Ohne die Anforderungen und Rahmenbedingungen genau zu kennen, würde ich keine konkreten Vorschläge für so eine Datenstruktur machen wollen.



  • @CppConst Willst du die Objekte bloss in deinem Programm direkt erstellen, oder willst du sie aus Datenfiles laden? Wenn du die Objekte direkt erstellen willst, dann musst du gar nichts weiter machen:

    struct Foo {
        int a = 0;
        int b = 0;
        int c = 0;
    };
    
    void test() {
        Foo f;
        f.a = 23;
        f.b = 42;
        Foo f2 = f; // "erbt" von f
        f2.c = 99; // "überschreibt" c
    }
    

    Wenn du es aus einem Datenfile lesen willst, siehe Antwort von @Mechanics.



  • Ich danke euch für die Realisierungsideen, damit komme ich sicher weiter. Das mit der Struktur ist wirklich so simpel, dass ich nicht selbst drauf gekommen bin und auch der Vorschlag vorher wird mir sicher helfen.

    Ich dachte halt, da gibt es auch ein bestimmtes Pattern oder so für.



  • Gibts bei CSS nicht auch noch special Vererbungsregeln? ... und Zeugs wie !important?



  • @Swordfish Klar, CSS ist sowieso ziemlich kompliziert. Spontan komme ich nicht drauf, aber da gibts glaub ich haufenweise Regeln, die die Implementierung komplizierter machen. Würde mich auch mal interessieren, wie das in etwa in Chome oder Firefox implementiert ist.


Anmelden zum Antworten