воскресенье, 19 октября 2014 г.

Ссылка. Про смешивание объектной и интерфейсной техник

http://namerec.blogspot.ru/2014/10/blog-post.html

У меня лично - "смутные ощущения" от написанного. Скажу лишь, что это полезно прочитать.

10 комментариев:

  1. «У меня лично - "смутные ощущения" от написанного. Скажу лишь, что это полезно прочитать.»
    -- Поделитесь. Очень интересно Ваше мнение на этот счёт.

    ОтветитьУдалить
  2. Возможно, я невнятно изложил проблему?

    ОтветитьУдалить
    Ответы
    1. Внятно, даже чересчур :)
      Позвольте я Вам оставлю пару ссылок на Александра Алексеева:
      Задачка №13
      Ответ на задачку №13

      Удалить
    2. "Возможно, я невнятно изложил проблему?"

      -- Не хочу никого обидеть, но! Если бы я лично не знал бы проблему - я бы не понял бы "о чём речь".

      Наверное это "мои проблемы".

      Вот Николай - понял и правильно привёл ссылку из GunSmoker'а.

      Удалить
    3. Но (ИМХО) у GunSmoker'а гораздо более чётко определена ПРОБЛЕМА и РЕШЕНИЕ.

      Удалить
  3. Ответы
    1. Да, это всё одна и та же тема.
      Причём мне кажется, что она имеет все шансы быть "неисчерпаемой", поскольку IMHO - это грабли: замешать парадигму интерфейсов с другой, совершенно параллельной - автоматическим подсчётом ссылок.
      И если первая в Delphi выглядит совершенно естественно (действительно, полиморфизм за рамками общего предка более чем востребован) то к внедрению второй, IMHO следовало основательно подготовиться, поскольку в Pascal автоматизированного управления ресурсами никогда не было.
      Отсюда и использование интерфейсов не по назначению, т.е. тогда, когда требуется рефкаунтинг, и наоборот - возня с этим рефкаунтингом, когда он совершенно не нужен — как в описанном мною случае, например.

      Что касается Вашей сслки, то вот сижу сейчас и думаю, что не стал заострять в своей статье на этом внимание, но боюсь что то, что неявное получение интерфейса из объекта при обращении к моей процедуре ExecuteInterfaceTests — не очевидно, хотя понятно, что интерфейсная ссылка появляется внутри этой процедуры, а не в вызывающем коде.
      Это к тезису «неисчерпаемости» темы интерфейсных ссылок и их контекста.

      Удалить
    2. Я кстати когда-то писал про "контракты vs. интерфейсы".

      Не могу пока найти ссылку.

      Удалить
    3. А тема - ДЕЙСТВИТЕЛЬНО "неисчерпаема".

      Удалить
    4. Вот пока "собрал ссылки" - http://programmingmindstream.blogspot.ru/2014/10/arc.html

      Удалить