Браузер классов — это функция интегрированной среды разработки (IDE), которая позволяет программисту просматривать, перемещаться или визуализировать структуру объектно-ориентированного программного кода.
Большинство современных браузеров классов обязаны своим происхождением Smalltalk , одному из самых ранних объектно-ориентированных языков и сред разработки. Типичный браузер Smalltalk с «пятью панелями» представляет собой ряд горизонтально примыкающих панелей выбора, расположенных над панелью редактирования, панели выбора позволяют пользователю сначала указать категорию, а затем класс , а затем уточнить выбор, указав конкретный метод класса или экземпляра, реализация которого представлена в панели редактирования для проверки или изменения.
Большинство последующих объектно-ориентированных языков отличались от Smalltalk тем, что они компилировались и выполнялись в дискретной среде выполнения , а не были динамически интегрированы в монолитную систему, как ранние среды Smalltalk. Тем не менее, концепция табличного или графического браузера для навигации по иерархии классов прижилась.
С ростом популярности C++ в конце 1980-х годов современные IDE добавили браузеры классов, сначала для простой навигации по иерархиям классов, а затем для помощи в создании новых классов. С появлением Java в середине 1990-х годов браузеры классов стали ожидаемой частью любой графической среды разработки.
Все основные среды разработки предоставляют некоторый вид браузера классов, включая
Современные браузеры классов делятся на три основные категории: браузеры столбцов , браузеры контуров и браузеры диаграмм .
Продолжая традицию Smalltalk, колоночные браузеры отображают иерархию классов слева направо в ряде столбцов. Часто самый правый столбец зарезервирован для методов экземпляра или переменных конечного класса.
Системы, корни которых лежат в Microsoft Windows, как правило, используют браузер в виде структуры, часто с цветными (хотя и загадочными) значками для обозначения классов и их атрибутов.
В первые годы 21 века браузеры классов начали трансформироваться в инструменты моделирования, где программисты могли не только визуализировать свою иерархию классов в виде диаграммы, но и добавлять классы в свой код, добавляя их в диаграмму. Большинство этих систем визуализации были основаны на той или иной форме унифицированного языка моделирования (UML).
Поскольку среды разработки добавляют функции рефакторинга , многие из этих функций были реализованы в браузере классов, а также в текстовых редакторах. Браузер рефакторинга может позволить программисту перемещать переменную экземпляра из одного класса в другой, просто перетаскивая ее в графическом пользовательском интерфейсе, или объединять или разделять классы с помощью жестов мыши, а не большого количества команд текстового редактора.
Ранним дополнением для Digitalk Smalltalk был логический браузер для правил Prolog , инкапсулированных как предложения внутри классов. Более поздние логические браузеры появились как BackTalk и SOUL (Smalltalk Open Unification Language с LiCor, или библиотека для рассуждений кода) для Squeak и VisualWorks Smalltalk. Логический браузер предоставляет интерфейс для Prolog, реализованный в Smalltalk ( движки Lisp часто реализовывались в Smalltalk). Схожий браузер можно найти в правилах ILog и некоторых производственных системах OPS. Visual Prolog и XPCE предоставляют сопоставимый просмотр правил. В случае SOUL VisualWorks предоставляет как браузер запросов, так и браузер предложений; Backtalk предоставляет браузер ограничений. Комментарии Алана Кея о параллели Smalltalk и Prolog появились в то же время, но с очень небольшим перекрестным опылением. Интерес к прологу XSB для XUL и миграция пролога AMZI! в Eclipse IDE являются текущими путями в эволюции логического браузера. Правила, инкапсулированные в классы, можно найти в Logtalk и нескольких вариантах ООП- Пролога, таких как LPA Prolog, Visual Prolog и AMZI!, а также в популярном SICStus .
Один из вариантов веб-фреймворка Seaside в Smalltalk позволяет открывать браузер классов во время выполнения в запущенном веб-браузере: редактирование метода немедленно вступает в силу в запущенном веб-приложении. В случае Vistascript (Vista Smalltalk) для Microsoft IE7 щелчок правой кнопкой мыши на фоне открывает ClassHierarchyBrowser. Это немного похоже на редактирование прототипов JavaScript в веб-браузере или классов Ruby , Groovy или Jython в IDE, запущенной в JVM .