Из совсем прошлого:
"ещё до "открытия" для себя IUnknown я придумал "фабрики интерфейсов (инструментов)".. на базовом объекте я ввёл метод QueryTool, который возвращал по идентификатору "инструмента" либо новый объект, если текущий не был совместим с указанной VMT, либо текущий, если он был совместим с указанной VMT.. Но тут понадобился подсчёт ссылок (http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82_%D1%81%D1%81%D1%8B%D0%BB%D0%BE%D0%BA)... и он - БЫЛ РЕАЛИЗОВАН... так вот.. а потом - я "открыл" для себя IUnknown, когда Delphi 3 вышли..."
Но в Delphi 3 - Не было TInterfacedObject (или я не знал про него). Посему - "мой подсчёт ссылок" - остался в неизменном виде. Он - СИЛЬНО отличается от TInterfacedObject. Хотя бы на +1 в конструкторе. И он дожил ДО СИХ ПОР. А ТЕПЕРЬ - он мне сильно нравится. ГОРАЗДО больше, чем TInterfacedObject. Он - СИММЕТРИЧНЕЕ. И позволяет "смешивать объекты с интерфейсами". Безболезненно. И не задумываться о const или не const.
+1 в конструкторе и "фабричные методы". Одна из разниц. Но какая!
Вот ссылка кстати - http://18delphi.blogspot.com/2013/04/iunknown.html
Ну и "ДО" IUnknown я сильно "баловался" процедурами с директивой message... Работало - как надо... Только - медленно.
От message я не так давно избавился... Лет пять назад...
А от QueryTool - так и не избавился. Они мне нравятся. Но только перевёл их на IUnknown.
"ещё до "открытия" для себя IUnknown я придумал "фабрики интерфейсов (инструментов)".. на базовом объекте я ввёл метод QueryTool, который возвращал по идентификатору "инструмента" либо новый объект, если текущий не был совместим с указанной VMT, либо текущий, если он был совместим с указанной VMT.. Но тут понадобился подсчёт ссылок (http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82_%D1%81%D1%81%D1%8B%D0%BB%D0%BE%D0%BA)... и он - БЫЛ РЕАЛИЗОВАН... так вот.. а потом - я "открыл" для себя IUnknown, когда Delphi 3 вышли..."
Но в Delphi 3 - Не было TInterfacedObject (или я не знал про него). Посему - "мой подсчёт ссылок" - остался в неизменном виде. Он - СИЛЬНО отличается от TInterfacedObject. Хотя бы на +1 в конструкторе. И он дожил ДО СИХ ПОР. А ТЕПЕРЬ - он мне сильно нравится. ГОРАЗДО больше, чем TInterfacedObject. Он - СИММЕТРИЧНЕЕ. И позволяет "смешивать объекты с интерфейсами". Безболезненно. И не задумываться о const или не const.
+1 в конструкторе и "фабричные методы". Одна из разниц. Но какая!
Вот ссылка кстати - http://18delphi.blogspot.com/2013/04/iunknown.html
Ну и "ДО" IUnknown я сильно "баловался" процедурами с директивой message... Работало - как надо... Только - медленно.
От message я не так давно избавился... Лет пять назад...
А от QueryTool - так и не избавился. Они мне нравятся. Но только перевёл их на IUnknown.
Комментариев нет:
Отправить комментарий