Здравствуйте, Аноним, Вы писали:
А>Пишу класс — менеджер визуальных свойств контрола. Этот класс будет хранить информацию о шрифте, цвете текста, цвете фона и подобных вещах. В приложении есть несколько контролов (одного типа), но с разными свойствами. Как лучше написать интерфейс для доступа и установки свойств ?
А>Example 1.
А>А>class ViewManager
А>{
А>public:
А> COLORREF GetColorForControl_1 ();
А> void SetColorForControl_1 ();
А> ...
А> COLORREF GetColorForControl_N ();
А> void SetColorForControl_N ();
А>private;
А> COLORREF m_crControl_1;
А> ...
А> COLORREF m_crControl_N;
А>}
А>
А>Example 2.
А>А>class ViewManager
А>{
А>public:
А> enum ControlType {e_1, e_2...e_N, e_Last};
А> COLORREF GetColorForControl_N (ControlType e);
А> void SetColorForControl_N (ControlType e);
А>private;
А> COLORREF m_crControls [e_Last];
А>}
А>
А>То есть в первом случае для каждого контрола свой отдельный интерфейс, во втором все делается через идентификатор. В первом более понятно, во втором надо иметь дело с enum и не забывать для какого контрола (идентификатора) выставляешь или запрашиваешь свойства.
А>Спасибо
Может хватит списка обьектов COLORREF(Ближе ко второму варианту)?