Пользовательский интерфейс
DESCRIPTION
Лекция Михаила Гуренкова по пользовательскому интерфейсу в рамках курса по ООП. Каф. Вычислительная математика и программирование, МАИ.TRANSCRIPT
Пользовательский интерфейс
Model—View—Controller (MVC)
Windows Forms
Шаблон наблюдатель(Оbserver)
interface IClickObserver{ void Notify(Control a_Control);}
interface IMouseDownObserver{ void Notify(Control a_Control, int x, int y, int a_MouseButton);}
Шаблон наблюдатель(Оbserver)class Button : Control{ List<IClickObserver> m_ClickObservers = new List<IClickObserver>();
public void Register(IClickObserver a_Observer) { m_ClickObservers.Add(a_Observer); }
void OnClick() { foreach (IClickObserver observer in m_ClickObservers) { observer.Notify(this); } }}
События (events)class Button : Control{ public event EventHandler Click;
void OnClick(EventArgs e) { if (Click != null) { Click(this, e); } }}
Observer vs Eventsclass Button : Control{ List<IClickObserver> m_ClickObservers = new
List<IClickObserver>();
public void Register(IClickObserver a_Observer) { m_ClickObservers.Add(a_Observer); }
void OnClick() { foreach (IClickObserver observer in
m_ClickObservers) { observer.Notify(this); } }}
class Button : Control{ public event EventHandler Click;
void OnClick(EventArgs e) { if (Click != null) { Click(this, e); } }}