Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635), страница 95
Текст из файла (страница 95)
В некоторых языкахпрограммирования определяется всеобщий базовый класс, который является суперклассом для всех остальных классов.блокирующий объект, blocking object. Пассивный объект, способный работать вмногопоточном окружении. Вызов операции блокирующего объекта блокирует клиентана все время операции.видимость, visibility.
Способность одной абстракции видеть другую и, такимобразом, ссылаться на ее ресурсы извне. Абстракции видимы друг другу, только если онинаходятся в одном пространстве имен. Контроль экспорта может еще более ограничитьдоступ к видимым абстракциям.виртуальная функция, virtual function. Какая-либо операция над объектом.Виртуальная функция может быть переопределена в подклассах, следовательно, еереализация определяется всем множеством методов, объявленных во всех классах дереванаследования. Термины «обобщенная функция» и «виртуальная функция»взаимозаменяемы.временная сложность, time complexity.
Относительное или абсолютное время, закоторое выполняется операция.действие, action. Некое происшествие в системе, требующее, с практическойточки зрения, нулевого времени для своего завершения. Действием может быть вызовоперации, запуск другого события, начало или остановка деятельности.делегирование, delegation. При делегировании один объект, ответственный заоперацию, передает выполнение этой операции другому объекту.деструктор, destructor. Операция класса, которая освобождает состояниеобъекта и/или уничтожает сам объект.деятельность, activity. Операция, выполнение которой требует некотороговремени.диаграмма взаимодействий, interaction diagram. Часть системы обозначенииобъектно-ориентированного проектирования; используется для демонстрациивыполнения какого-либо сценария в контексте диаграммы объектов.диаграмма классов, class diagram.
Часть системы обозначений объектноориентированного проектирования; используется, чтобы наглядно показать классы и ихвзаимоотношения в логическом проекте системы. Может представлять всю структуруклассов или ее часть.диаграмма модулей, module diagram. Часть системы обозначений объектноориентированного проектирования; используется для демонстрации разбиения классов иобъектов по модулям в физическом проекте системы. Диаграмма модулей отображаетархитектуру модулей системы.диаграмма объектов, object diagram.
Часть системы обозначений объектноориентированного проектирования; используется, чтобы наглядно показать объекты иотношения между ними в логическом проекте системы. Может отражать всю объектнуюструктуру или часть ее; обычно иллюстрирует смысл механизмов в логическом проекте.Отдельная диаграмма объектов — моментальный снимок из жизни системы.диаграмма переходов и состояний, state transition diagram. Часть обозначенийобъектно-ориентированного проектирования; используется для отображенияпространства состояний данного класса, событий, которые вызывают переход из одногосостояния в другое, и действий, возникающих в результате смены состояния.диаграмма процессов, process diagram. Часть системы обозначений объектноориентированного проектирования; используется, чтобы наглядно показать, какпроцессы размешены по процессорам в физическом проекте системы.
Диаграммапроцессов отражает архитектуру процессов.динамическое связывание, dynamic binding. Связывание означает установлениесоответствия имени (например, объявленной переменной) с классом. Динамическоесвязывание происходит при выполнении программы в тот момент, когда создаетсяобъект, обозначенный именем.друг, friend. Класс или операция, имеющие доступ к закрытым операциям илиданным некоторого класса. Только сам класс может называть своих друзей.закрытая, private.
Часть интерфейса какого-либо класса, объекта или модуля,закрытая (невидимая) для других классов, объектов и модулей.защищенная, protected. Часть интерфейса какого-либо класса, объекта илимодуля, невидимая для всех других классов, объектов и модулей за исключениемподклассов.идентичность, identity. Природа объекта; то, что отличает его от другихобъектов.идиома, idiom. Выражение, общепринятое в каком-либо языкепрограммирования или культуре какого-либо приложения, отражающее общепринятыйспособ использования да-ного языка.иерархия, hierarchy. Подчинение или упорядочение абстракций. Две типичныхиерархии в сложной системе — структура классов (включая иерархию «обшее/частное»)и структура объектов (включая иерархию «целое/часть»); иерархии можно такжеобнаружить в архитектурах модулей и процессов.инвариант, invariant.
Логическое выражение некоторого условия, истинностькоторого необходимо соблюдать.инкапсуляция, encapsulation. Процесс разделения элементов абстракции,которые образуют ее структуру и поведение. Служит для отделения внешнихобязательств объекта от его реализации.инстанцирование, instantiation. Подстановка параметров шаблона обобщенногоили параметризованного класса; в результате создается конкретный класс, которыйможет иметь экземпляры.интерфейс, interface. Внешний вид класса, объекта или модуля, выделяющий егосущественные черты и не показывающий внутреннего устройства и секретов поведения.исключение, exception. Возбуждение исключения показывает, что некоторыйлогический инвариант не соблюдается.
В C++ мы возбуждаем исключение, чтобыизбежать неправомочное исполнение операций и дать знать о возникшей проблемедругим объектам, которые могут перехватить исключение и принять меры.использовать, use. Ссылаться на абстракцию извне. итератор, iterator. Операция,позволяющая навещать части некоторого объекта.категория классов, class category. Логически полный набор классов, одни изкоторых видимы для других категорий классов, а другие ~ нет. Классы в категориисотрудничают для предоставления некоторого набора услуг.класс, class. Множество объектов с общей структурой и поведением.
Термины«класс» и «тип» в большинстве случаев (но не всегда) взаимозаменяемы. Понятие классаотличается от понятия типа тем, что концентрируется на классификации по структуре иповедению.класс-контейнер, container class. Класс, экземпляры которого представляютсобой коллекции других объектов. Контейнер может быть однородным (коллекциивключают экземпляры только одного класса) либо неоднородным (коллекции включаютэкземпляры разных классов, имеющих обычно общий суперкласс), В C++ контейнерыобычно определяются как параметризованные классы с параметром, обозначающимкласс объектов коллекции.клиент, client.
Объект, который пользуется услугами другого объекта либовыполняя операции над последним, либо через доступ к его состоянию,ключ, key. Атрибут, значение которого однозначно идентифицирует объект.ключевая абстракция, key abstraction. Класс или объект, являющийся частьюсловаря предметной области.конкретный класс, concrete class.
Класс, реализация которого завершена икоторый, поэтому, может иметь экземпляры.конструктор, constructor. Операция, создающая объект и/илиинициализирующая его состояние.метакласс, metaclass. Класс класса; класс, экземпляры которого сами являютсяклассами.метод, method. Операция над объектом, определенная как часть описания класса.Не любая операция является методом, но все методы — операции.
Термины «метод»,«сообщение» и «операция» обычно взаимозаменяемы. В некоторых языках методысуществуют сами по себе и могут переопределяться подклассами; в других языках методне может быть переопределен, — он служит как часть реализации обобщенных иливиртуальных функций, которые можно переопределять в подклассах.механизм, mechanism.
Структура, посредством которой объекты сотрудничаютдруг с другом, осуществляя поведение, которое соответствует требованиям системы.модификатор, modifier. Операция, изменяющая состояние объекта.модуль, module. Единица кода, служащая строительным блоком физическойструктуры системы; программный блок, который содержит объявления, выраженные всоответствии с требованиями языка и образующие физическую реализацию части иливсех классов и объектов логического проекта системы.
Как правило, модуль состоит изинтерфейсной части и реализации.модульность, modularity. Свойство системы, которая была разделена на связныеи слабо зацепленные между собой модули.мономорфизм, monomorphism. Положение теории типов, согласно которомуимена (например, переменных) могут обозначать только объекты одного и того жекласса.мощность, cardinality.
Число экземпляров класса: число экземпляров,участвующих в связи классов.наследование, inheritance. Отношение между классами, при котором классиспользует структуру или поведение другого (одиночное наследование) или других(множественное наследование) классов.
Наследование вводит иерархию «общее/частное»в которой подкласс наследует от одного или нескольких более общих суперклассов.Подклассы обычно дополняют или переопределяют унаследованную структуру иповедение.обобщенная функция, generic function. Какая-либо операция над объектом.Обобщенная функция класса может быть переопределена в подклассах; следовательно,ее реализация определяется всем множеством методов, объявленных во всех классахдерева наследования. Термины «обобщенная функция» и «виртуальная функция»взаимозаменяемы.обобщенный класс, generic class.
Класс, служащий шаблоном для созданиядругих классов: шаблон параметризуется другими классами, объектами и/илиоперациями. Обобщенный класс до создания объектов должен быть инстанцирован.Обобщенные классы используются как контейнерные классы. Термины «обобщенныйкласс» и «параметризованный класс» взаимозаменяемы.обратный инжиниринг, reverse-engineering. Восстановление логической илифизической модели системы по коду.