Правила программирования на С и С++. Главы 1-6
Страница 58. Функция должна делать только одно дело


 

51. Функция должна делать только одно дело.

Это обычно не очень удачная мысль - записывать то, что должна делать функция, через ее аргументы. Это должно делать имя функции. Например:

UpdateAllViews( CView *sender, long lhint, CObject *phint )

{

 
// sender lhint phint  
// NULL xx xx Начальное обновление, вызываемое из обрамляющего окна 
// Cview* // 

//

0 CRect* Вызывается, когда встроенный объект становится действительным. phint указывает на прямоугольник документа, сохраняя положение недействительного объекта
// Cview* 

// 

//

1 CRect* Сообщение, посылаемое объектом CView* ("sender" - передатчик). phint сохраняет для CView* обрамляющее окно его клиента.
// ...      
  }

Вам нужны вместо этого три функции: initial_update(), update_embedded_object() и update_view(). Верным ключом для понимания того, что здесь что-то не так, является туманная природа имен аргументов. Функции не должны передаваться "намеки". Ей должны даваться указания.

 
« Предыдущая статья