ООП. Доступ к свойству вложенного объекта
От: uKCuH  
Дата: 12.01.11 10:54
Оценка:
Имеется класс, имеющий свой набор св-в. Им владеет другой класс, а этим ещё один. Каким образом с точки зрения ООП лучше всего изменить св-ва самого вложенного объекта. Пример.

class Signal
{
    public:
        void SetColor(Color &);
        Color GetColor() const;
        
        void SetOpacity(double );
        double GetOpacity() const;
        .. и так далее
};

class View
{
public:
     void AddSignal(int id);

private:
    SignalCollection m_signals;
};

class Window
{
private:
    View m_view;
};


Как лучше всего, имея объект класса Window и id сигнала, поменять его свойства, наиболее правильным способом.

На данный момент сделано так:

class View
{
public:
    void AddSignal(int id);
    
    void SetSignalColor(int signalId, Color &color)
    {
         m_signals[id]->SetColor(color);
    }
};

class Window
{
public:
    void SetSignalColor(int signalId, Color &color)
    {
         m_view.SetSignalColor(signalId, color);
    }

private:
    View m_view;
};


С текущим подходом, при добавлении нового св-ва в Signal, необходимо менять интерфейс View и Window. Что уже кажется странным.
Как бы вы это сделали?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.