Пишу класс — менеджер визуальных свойств контрола. Этот класс будет хранить информацию о шрифте, цвете текста, цвете фона и подобных вещах. В приложении есть несколько контролов (одного типа), но с разными свойствами. Как лучше написать интерфейс для доступа и установки свойств ?
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 и не забывать для какого контрола (идентификатора) выставляешь или запрашиваешь свойства.
Спасибо