Smalltalk по-русски
среда, Апрель 20, 2005
Находим публичный интерфейс класса во время выполнения

Иногда надо найти для класса все методы, вызываемые другими классами (но не самим собой). Чтобы не копаться с senders/impementors можно попробовать это сделать автоматом во время выполнения (с помощью MethodWrappers). Запускаем код и смотрим какие методы были вызваны.

Например я хочу узнать какие методы другие классы вызывают у ProductionOrder.

ProductionOrder
 extractInterfaceDuring: [testRunner runSuite: DomainTestSuite new].

Открывается окно со всеми методами которые другие классы вызывают у ProductionOrder во время запуска тестов

Если надо показывать также методы определенные в суперклассах, то можно сделать так:

ProductionOrder
    extractInterfaceUpTo: AbstractOrder
    during: [testRunner runSuite: DomainTestSuite new]

Пакет ExtractInterface находится в открытом репозитории. Перед загрузкой ExtractInterface загрузите пакет MethodWrapper .

Еще одно полезное применение. Например во время рефакторинга иерархии классов часто возникает вопрос насколько сильно класс связан со своими суперклассами. Можно ли его перенести в другую иерархию. Запускаем ExtractInterface и смотрим какие методы суперклассов реально используються.

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

<< Home

Популярные статьи
:: Smalltalk?!
:: Почему Smalltalk?
:: Great Leap Forward from Java to Smalltalk

Последние сообщения
:: 1-е ежегодное соревнование программистов на Smallt...
:: Ruby/Python on Smalltalk VM
:: [Job] Работа в Transas (Санкт-Петербург)
:: [VW] Полезняшки: Teachable
:: Smalltalk/JVM - open source?
:: Ambrai Smalltalk 1.0.6 Beta
:: [VW] Знаете ли Вы, что такое pragma?
:: Dolphin Smalltalk BETA
:: A Seaside Vacation
:: Dynamic typing

Архив
Предыдущие новости / Декабрь 2004 / Январь 2005 / Февраль 2005 / Март 2005 / Апрель 2005 / Май 2005 / Июнь 2005 / Июль 2005 / Август 2005 / Сентябрь 2005 / Октябрь 2005 / Ноябрь 2005 / Декабрь 2005 / Январь 2006 / Февраль 2006 / Март 2006 / Апрель 2006 / Май 2006 / Июнь 2006 / Июль 2006 / Сентябрь 2006 / Октябрь 2006 / Ноябрь 2006 / Декабрь 2006 / Январь 2007 / Февраль 2007 / Март 2007 / Апрель 2007 / Май 2007 / Июнь 2007 / Август 2007 / Сентябрь 2007 / Ноябрь 2007 / Январь 2008 / Март 2008 / Май 2008 / Июнь 2008 / Июль 2008 / Август 2008 / Сентябрь 2008

Atom Feed
Smalltalk по-русски


Powered by Blogger