среда, 6 августа 2014 г.

Коротко. MindStream. И ещё коммит

https://bitbucket.org/ingword/mindstream/commits/3c86615cd0c66236e7f8b7cdc9aca8eb66daec17

type
 TmsDrawContext  = record
 // Контекст рисования.
 // "Лирика" - тут - http://habrahabr.ru/post/170125/
 // Ну и "связанное" - https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D1%8F_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
 //
 // Зачем же НАМ нужен "контекст"?
 //
 // Всё - БАНАЛЬНО. Чтобы НЕ ТРОГАТЬ сигнатуры методов. Мысль понятна?
  public
   rCanvas : TCanvas;
   rOrigin : TPointF;
   rMoving : Boolean; // - определяем, что текущий рисуемый примитив - двигается
   constructor Create(const aCanvas : TCanvas; const aOrigin : TPointF);
 end;//TmsDrawContext

Контекст - это "нечто", что влияет на ПОВЕДЕНИЕ объекта, НЕ ВЛИЯЯ на его (объекта) СОСТОЯНИЕ.

Т.е. мы "настраиваем" поведение ОБЪЕКТА не трогая его СОСТОЯНИЯ. И МИНИМИЗИРУЕМ необходимость изменения сигнатур методов объектов.

ОСОБЕННО тех, которые - override.

Мысль понятна?

Комментариев нет:

Отправить комментарий