Mitteilung an eine Klasse



  • Hi,

    ich habe eine Klasse namens Bild und eine Klasse namens BildData. Die Klasse Bild dient dazu, ein Bild anzuzeigen, BildData lädt/speichert Bilder und manipuliert diese. Aber was soll die Klasse Bild anzeigen? Die Daten aus der Klasse BildData. Also macht es Sinn, dass Bild von BildData erbt, das klappt auch super.

    Wenn die Klasse "Bild" ein Bild anzeigen soll, dann wäre als Name besser "BildAnzeiger" geeignet. Die Klasse BildData sollte in zwei Klassen zerlegt werden: BildLeserSchreiber und Bild. Manipulatoren sollten eigene Klassen sein, die mit Bildern arbeiten. Und - aber das ist jetzt mein persönlicher Geschmack - liest sich der Code mit englischsprachigen Bezeichnern besser.

    Ergebnis wäre etwas in der Art:

    class ImageViewer
    {
    public:
    ...
        void displayImage(Image& img);
    ...
    };
    
    class ImageReaderWriter
    {
    public:
    ...
        void writeImage(Image& img, Destination& dest);
        Image readImage(Source& src);
    ...
    };
    
    class UnaryManipulator
    {
    public:
        virtual void operator()(Image& src) = 0;
    };
    

    Es ist dann zu überlegen, ob Dein Image immer denselben Datentyp (z.B. unsigned char) verarbeitet, oder ob verschiedene vorkommen (RGB) können. Dann wäre es wahrscheinlich sinnvoll, Image als Template-Klasse zu entwerfen.

    Als Idee kannst Du mal hier: http://ltilib.sourceforge.net/doc/homepage/index.shtml nachschauen


Anmelden zum Antworten