3.5. Взаимосвязь классов и объектов.
3.5. Взаимосвязь классов и объектов.
Отношения между классами и объектами
Классы и объекты - это отдельные, но тесно связанные понятия. В частности, каждый объект является экземпляром какого-либо класса; класс может порождать любое число объектов. В большинстве практических случаев классы статичны, то есть все их особенности и содержание определены в процессе компиляции программы. Из этого следует, что любой созданный объект относится к строго фиксированному классу. Сами объекты, напротив, в процессе выполнения программы создаются и уничтожаются.
В качестве примера рассмотрим классы и объекты для задачи управления воздушным движением. Наиболее важные абстракции в этой сфере - самолеты, графики полетов, маршрут и коридоры в воздушном пространстве. Трактовка этих классов объектов по самому их определению достаточно статична. Иначе невозможно было бы построить никакого приложения, использующего такие общепонятные факты, как то, что самолеты могут взлетать, летать и приземляться, а также что никакие два самолета не должны находиться одновременно в одной и той же точке.
Объекты же этих классов, напротив, динамичны. Набор маршрутов полетов сменяется не очень часто. Существенно быстрее изменяется множество самолетов, находящихся в полете. Частота, с которой самолеты занимают и покидают воздушные коридоры, еще выше.
Роль классов и объектов в анализе и проектировании
На этапе анализа и ранних стадиях проектирования решаются две основные задачи:
• Выявление классов и объектов, составляющих словарь предметной области.
• Построение структур, обеспечивающих взаимодействие объектов, при котором выполняются требования задачи.
В первом случае говорят о ключевых абстракциях задачи (совокупность классов и объектов), во втором - о механизмах реализации (совокупность структур).
На ранних стадиях внимание проектировщика сосредоточивается на внешних проявлениях ключевых абстракций и механизмов. Такой подход создает логический каркас системы: структуры классов и объектов. На последующих фазах проекта, включая реализацию, внимание переключается на внутреннее поведение ключевых абстракций и механизмов, а также их физическое представление. Принимаемые в процессе проектирования решения задают архитектуру системы: и архитектуру процессов, и архитектуру модулей.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Защита объектов ядра и приватных объектов
Защита объектов ядра и приватных объектов Многие объекты, такие как процессы, потоки или мьютексы, являются объектами ядра (kernel objects). Для получения и установки дескрипторов безопасности ядра используются функции GetKernelObjectsSecurity и SetKernelObjectsSecurity, аналогичные функциям защиты
5.23 Взаимосвязь имен и адресов
5.23 Взаимосвязь имен и адресов Посмотрев на имя системы (fermat.math.yale.edu) и ее IP-адрес в нотации с точками (128.36.23.3), можно подумать, что части имени соответствуют номерам в нотации с точками. Однако на самом деле между ними нет никакой связи.Действительно, иногда системам
7.3.4. Взаимосвязь между производственным процессом проекта и планом разработки ПО
7.3.4. Взаимосвязь между производственным процессом проекта и планом разработки ПО Описание производственного процесса проекта бывает, как правило, недостаточно конкретным для непосредственного выполнения. Хотя описание обычно определяет такие понятия, как роли (т. е.
4.2. Идентификация классов и объектов
4.2. Идентификация классов и объектов Классический и современный подходы Со времен Платона проблема классификации занимала умы бесчисленных философов, лингвистов, когнитивистов, математиков. Поэтому было бы разумно изучить накопленный опыт и применить его в
3. Статистика классов и объектов.
3. Статистика классов и объектов. Ну все, здесь уже совсем все просто. Ничего писать не буду, кроме напоминания о том, что всенепременнейше нужно определять статистические переменные класса, в том числе и для параметризированного (то бишь для шаблона), и ровно один
Взаимосвязь процессов, доменов приложений, контекстов и потоков
Взаимосвязь процессов, доменов приложений, контекстов и потоков В предыдущей главе обсуждалось понятие потока, который был определен, как путь исполнения в рамках выполняемого приложения. И хотя многие приложения .NET имеют только один поток и, тем не менее, оказываются
Б.4. Взаимосвязь с библиотечными функциями ввода-вывода
Б.4. Взаимосвязь с библиотечными функциями ввода-вывода Выше уже говорилось о том. что функции ввода-вывода стандартной библиотеки языка С реализованы на основе низкоуровневых функций. Иногда удобнее работать с одними, иногда — с другими.Если файл был открыт с помощью
3.9.2. Взаимосвязь массивов и указателей
3.9.2. Взаимосвязь массивов и указателей Если мы имеем определение массива:int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21 };то что означает простое указание его имени в программе?ia;Использование идентификатора массива в программе эквивалентно указанию адреса его первого элемента:ia;ia[0]Аналогично
13.2. Объекты классов
13.2. Объекты классов Определение класса, например Screen, не приводит к выделению памяти. Память выделяется только тогда, когда определяется объект типа класса. Так, если имеется следующая реализация Screen:class Screen {public:// функции-членыprivate:string _screen;string:size_type _cursor;short
16. Шаблоны классов
16. Шаблоны классов В этой главе описывается, как определять и использовать шаблоны классов. Шаблон - это предписание для создания класса, в котором один или несколько типов либо значений параметризованы. Начинающий программист может использовать шаблоны, не понимая
8.6.2 Объекты Классов
8.6.2 Объекты Классов Объект с закрытыми членами не может быть инициализован списком инициализаторов; это же относится к объекту объединние. Объект класса с конструктором должен инициализироваться. Если класс имеет конструктор, не получающий параметров, то этот