Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Пользовательский интерфейс

2,046 views

Published on

Лекция Михаила Гуренкова по пользовательскому интерфейсу в рамках курса по ООП. Каф. Вычислительная математика и программирование, МАИ.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Пользовательский интерфейс

  1. 1. Пользовательский интерфейс
  2. 2. Model — View — Controller (MVC)
  3. 3. Windows Forms
  4. 4. Шаблон наблюдатель (О bserver ) <ul><li>interface IClickObserver </li></ul><ul><li>{ </li></ul><ul><li>void Notify(Control a_Control); </li></ul><ul><li>} </li></ul><ul><li>interface IMouseDownObserver </li></ul><ul><li>{ </li></ul><ul><li>void Notify(Control a_Control, int x, int y, int a_MouseButton); </li></ul><ul><li>} </li></ul>
  5. 5. Шаблон наблюдатель (О bserver ) <ul><li>class Button : Control </li></ul><ul><li>{ </li></ul><ul><li>List<IClickObserver> m_ClickObservers = new List<IClickObserver>(); </li></ul><ul><li>public void Register(IClickObserver a_Observer) </li></ul><ul><li>{ </li></ul><ul><li>m_ClickObservers.Add(a_Observer); </li></ul><ul><li>} </li></ul><ul><li>void OnClick() </li></ul><ul><li>{ </li></ul><ul><li>foreach (IClickObserver observer in m_ClickObservers) </li></ul><ul><li>{ </li></ul><ul><li>observer.Notify(this); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  6. 6. События ( events) <ul><li>class Button : Control </li></ul><ul><li>{ </li></ul><ul><li>public event EventHandler Click; </li></ul><ul><li>void OnClick(EventArgs e) </li></ul><ul><li>{ </li></ul><ul><li>if (Click != null) </li></ul><ul><li>{ </li></ul><ul><li>Click(this, e); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  7. 7. Observer vs Events <ul><li>class Button : Control </li></ul><ul><li>{ </li></ul><ul><li>List<IClickObserver> m_ClickObservers = new List<IClickObserver>(); </li></ul><ul><li>public void Register(IClickObserver a_Observer) </li></ul><ul><li>{ </li></ul><ul><li>m_ClickObservers.Add(a_Observer); </li></ul><ul><li>} </li></ul><ul><li>void OnClick() </li></ul><ul><li>{ </li></ul><ul><li>foreach (IClickObserver observer in m_ClickObservers) </li></ul><ul><li>{ </li></ul><ul><li>observer.Notify(this); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>class Button : Control </li></ul><ul><li>{ </li></ul><ul><li>public event EventHandler Click; </li></ul><ul><li>void OnClick(EventArgs e) </li></ul><ul><li>{ </li></ul><ul><li>if (Click != null) </li></ul><ul><li>{ </li></ul><ul><li>Click(this, e); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>

×