Designfrage



  • Ich habe 2 klassen

    class scaled
    {
    public:
        void setX(...);
        void setY(...);
        void setHeight(...);
        void setWidth(...);
    };
    
    class button : public scaled
    {
    public:
        // button-spezifische-funktionen
    };
    

    oder sollte ich lieber sowas machen

    class button
    {
    public:
        // button-spezifische-funktionen
    private:
        scaled skalierung;
    };
    

    was meint ihr?



  • Du hast anscheinend vor die scaled Funktionen nur intern zu verwenden.

    In diesem Fall würde ich auf Vererbung verzichten.
    Ich verwende Vererbung sowie sehr selten, weil die Kopplung dadurch sehr stark wird und das kann bei Änderungen viel Aufwand bedeuten.

    Macht aber nicht jeder so.

    ps.
    es war schwer zu verstehen, was du meinst, wenn du mehr Antworten haben möchstest solltest du ausführlicher posten.

    Gruß Frank


  • Administrator

    Ohne nähere Informationen darüber, was scaled ist und tut, kann man dir da nicht weiterhelfen.
    Im allgemeinen gilt:
    Wenn es eine Is-A Beziehung ist, dann nimmst du Vererbung.
    Wenn es eine Has-A Beziehung ist, dann nimmst du Assoziation.

    Viele Leute bringen das Is-A und Has-A allerdings durcheinander. Is-A und Has-A sollte nicht auf die Realität angewendet werden, sondern auf deine Klassen und ihre Schnittstellen.

    Grüssli


Anmelden zum Antworten