Студопедия — Основные принципы архитектуры документ-вид
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Основные принципы архитектуры документ-вид






Основные принципы архитектуры документ-вид

Концепция архитектуры документ-вид состоит в отделении хранения и обработки данных приложения от процесса отображения этих данных пользователю. Приложения, построенные на этой архитектуре, обладают более высокой внутренней логикой, их легче поддерживать и модифицировать. Библиотека классов MFC поддерживает создание остова приложения с помощью AppWizard, как использующего архитектуру документ-вид, так и не использующего ее. Тем не менее, в случае разработки достаточно большого приложения использование этой архитектуры предпочтительно.

AppWizard позволяет создавать каркас приложения, построенного на архитектуре документ-вид, как с одним документом, так и со многими документами. Приложение с одним документом может содержать в каждый момент времени только один открытый документ, в случае же многодокументного приложения возможно открытие сразу нескольких документов одновременно. Примером приложения имеющего ногодокументный интерфейс является Microsoft Word, примером приложения с одним документом является программа Notepad (блокнот). Приложение MFC на основе документ-вид с одним документом

При создании с помощью AppWizard приложения на основе одного документа, в нем создается специальный класс Документа, наследуемый от CDocument, в котором будут храниться данные, используемые приложением, и имеются методы для их сохранения на диск и восстановления с диска. Процесс сохранения данных документа на диск называется сериализацией, а восстановления документа с диска – десериализацией. Также AppWizard создает специальный класс Вида для отображения данных. Выбор конкретного типа этого класса осуществляется пользователем, но все эти классы наследуются от класса CView, имеющего базовые методы для отображения документа и взаимодействия с пользователем. В каркас приложения входит кроме того, класс Приложения, наследуемый от CWinApp, в котором определяется функция InitInstance, являющаяся точкой входа в приложение, и класс Рамки, ответственный за отображение элементов управления окна приложения.

Отображение данных пользователю, обычно осуществляется в методе OnDraw класса Вид, который является аналогом обработчика сообщения WM_PAINT для стандартного приложения Windows API. Для взаимодействия с классом Документа, в классе Вид имеется специальный метод GetDocument, который возвращает указатель на объект Документа. Используя этот указатель, можно выводить данные документа в методе OnDraw.ClassWizard позволяет создавать обработчики для различных типов сообщений, как правило, обработчики этих сообщений помещаются в класс Вида. Используя указатель на объект Документа, эти обработчики могут менять данные приложения.Для ериализации и десериализации данных на диске в классе Документа, имеется метод Serialize, который использует

2. Принципы и составные части объектного подхода (Билет 3)

Абстракция - вещь полезная, но всегда, кроме самых простых ситуаций, число абстракций в системе намного превышает наши умственные возможности. Инкапсуляция позволяет в какой-то степени устранить это препятствие, убрав из поля зрения внутреннее содержание абстракций. Модульность также упрощает задачу, объединяя логически связанные абстракции в группы. Но этого оказывается недостаточно.
Значительное упрощение в понимании сложных задач достигается за счет образования из абстракций иерархической структуры. Определим иерархию следующим образом:
Иерархия - это упорядочение абстракций, расположение их по уровням.
Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия "is-a") и структура объектов (иерархия "part of").
Примеры иерархии: одиночное наследование. Важным элементом объектно-ориентированных систем и основным видом иерархии "is-a" является упоминавшаяся выше концепция наследования. Наследование означает такое отношение между классами (отношение родитель/потомок), когда один класс заимствует структурную или функциональную часть одного или нескольких других классов (соответственно, одиночное и множественное наследование). Иными словами, наследование создает такую иерархию абстракций, в которой подклассы наследуют строение от одного или нескольких суперклассов. Часто подкласс достраивает или переписывает компоненты вышестоящего класса.
Семантически, наследование описывает отношение типа "is-a". Например, медведь есть млекопитающее, дом есть недвижимость и "быстрая сортировка" есть сортирующий алгоритм. Таким образом, наследование порождает иерархию "обобщение-специализация", в которой подкласс представляет собой специализированный частный случай своего суперкласса.


 

1. Ален Голуб (Билет4)

Ален Голуб предлагает необходимый набор пояснений, советов и технических приемов с целью помочь вам полностью использовать возможности этих чрезвычайно мощных языков. Голуб рассматривает универсальные правила, форматирование и правильную организацию программ перед тем, как углубиться в такие основополагающие вопросы, как:

♦ Практические способы организации и написания сопровождаемого кода.

♦ Объектно-ориентированное программирование и методы абстракции данных.

♦ Как избежать проблем, специфических для Си и Си++.


 

2. Буч – сложность - структура сложных систем (БИЛЕТ 4)

Как говорит Брукс, "сложность программного обеспечения - отнюдь не случайное его свойство" [3]. Сложность вызывается четырьмя основными причинами:

· сложностью реальной предметной области, из которой исходит заказ на разработку;

· трудностью управления процессом разработки;

· необходимостью обеспечить достаточную гибкость программы;

· неудовлетворительными способами описания поведения больших дискретных систем.

· Структура персонального компьютера. Персональный компьютер (ПК) - прибор умеренной сложности. Большинство ПК состоит из одних и тех же основных элементов: системной платы, монитора, клавиатуры и устройства внешней памяти какого-либо типа (гибкого или жесткого диска). Мы можем взять любую из этих частей и разложить ее в свою очередь на составляющие. Системная плата, например, содержит оперативную память, центральный процессор (ЦП) и шину, к которой подключены периферийные устройства. Каждую из этих частей можно также разложить на составляющие: ЦП состоит из регистров и схем управления, которые сами состоят из еще более простых деталей: диодов, транзисторов и т.д.Это пример сложной иерархической системы. Персональный компьютер нормально работает благодаря четкому совместному функционированию всех его составных частей. Вместе эти части образуют логическое целое. Мы можем понять, как работает компьютер, только потому, что можем рассматривать отдельно каждую его составляющую. Таким образом, можно изучать устройства монитора и жесткого диска независимо друг от друга. Аналогично можно изучать арифметическую часть ЦП, не рассматривая при этом подсистему памяти.Дело не только в том, что сложная система ПК иерархична, но в том, что уровни этой иерархии представляют различные уровни абстракции, причем один надстроен над другим и каждый может быть рассмотрен (понят) отдельно. На каждом уровне абстракции мы находим набор устройств, которые совместно обеспечивают некоторые функции более высокого уровня, и выбираем уровень абстракции, исходя из наших специфических потребностей. Например, пытаясь исследовать проблему синхронизации обращений к памяти, можно оставаться на уровне логических элементов компьютера, но этот уровень абстракции не подходит при поиске ошибки в прикладной программе, работающей с электронными таблицами.

· Структура растений и животных.

· Структура вещества.

· Структура социальных институтов

 

 


 

5.1. Алан Голуб – Правила программирования на СИ++ и примеры советов с пояснениямия (Билет 5)

Советы:

2.1. Не решайте проблем, которых не существует

6.1. Начинайте с комментариев

7. Читайте код (Читатель может найти ошибки, которые вы не увидели, и подать мысль, как улучшить код)

13. Заказчик всегда прав

8. Разбивайте сложные проблемы на задачи меньшего размера

20. Пустые потери времени(Если вы не можете решить неподатливую проблему, то займитесь на некоторое время чем-либо другим.)

30. Используйте аккуратные столбцы везде, где можно

44.1. Не используйте в качестве имен тарабарщину

74. Динамическая память — дорогое удовольствие

С++ 90. Не смешивайте объектно-ориентированное и "структурное" проектирование

90.1. Если проект не ориетирован на объекты, то используйте Си

91. Рассчитывайте потратить больше времени на проектирование и меньше на разработку

92. Библиотеки классов Си++ обычно не могут быть использованы неискушенными пользователями

111. Откажитесь от выражений языка Си, когда программируете на Си++

117. Избегайте дружественных классов(когда вы что-либо меняете в классе, который предоставляет дружественный статус, то должны также проверить

каждую функцию в дружественном классе, чтобы убедиться, что она еще работает.)

120. Ссылочные аргументы всегда должны быть константами

137. Виртуальная функция не является виртуальной, если вызывается из конструктора или деструктора

146. Используйте перегрузку операций только для определения операций, имеющих аналог в Си

152. Используйте new/delete вместо malloc()/free()

159. Назначение исключений — не быть пойманными

 

 

2.Буч – сложность - о проектировании сложных систем (БИЛЕТ 5)







Дата добавления: 2015-10-01; просмотров: 348. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Типы конфликтных личностей (Дж. Скотт) Дж. Г. Скотт опирается на типологию Р. М. Брансом, но дополняет её. Они убеждены в своей абсолютной правоте и хотят, чтобы...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия