Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сучасні об’єктно-орієнтовані технології
Рекомендована література: [62-112] Стандартна бібліотека С++ – об’єктно-орієнтована бібліотека програмних компонентів загального призначення для виконання операцій вводу-виводу (бібліотека потокового вводу-виводу IOStream), роботи з рядками, контейнерами (структурами даних), алгоритмами, які обробляють вміст контейнерів (бібліотека STL), для математичних обчислень, підтримки інтернаціоналізації [62-65]. Стандартна бібліотека шаблонів STL (Standard Template Library) – це набір узагальнених програмних компонентів (шаблонних класів і функцій), які реалізують велику кількість широко розповсюджених алгоритмів і структур даних [62-65] (с.70). STL основана на використанні таких компонентів: алгоритм, контейнер, ітератор, функціональний об’єкт, адаптер. Алгоритм STL (algorithm) - шаблон функції, який описує універсальні обчислювальні процедури над контейнерами. Приклад алгоритму fill: #include <algorithm>//бібліотека функцій-алгоритмівfill(v.begin(),v.end(),7); //заповнити контейнер v числами 7Контейнер STL (container) - структура даних, яка описана у вигляді шаблонного класу. Приклад: #include <vector>//бібліотека контейнера вектораvector<int> v(5);//оголосити контейнер-вектор цілих чисел розміром 5Ітератор STL (iterator) - узагальнений вказівник, який забезпечує доступ до елементів контейнера. Приклад: #include <vector>//бібліотека контейнера вектораvector<int>::iterator it;//оголосити ітераторФункціональний об’єкт STL (function object) - шаблонний клас, який інкапсулює перевантажений оператор виклику функції. Адаптер STL (adaptor) - шаблонний клас, який забезпечує відображення інтерфейсу (адаптує компонент для забезпечення різного інтерфейсу). Бібліотека потокового вводу-виводу IOStream – бібліотека шаблонних класів для операцій вводу-виводу, файлового вводу-виводу і рядкового вводу-виводу (с.64). Класи містять конструктори і деструктори, поля і функції для форматування, стану і режиму використання потоку, функції і оператори вводу-виводу, функції визначення і установки позиції в потоці та інші члени. Потік вводу-виводу – абстракція фізичного пристрою вводу-виводу, яка забезпечує однотипний інтерфейс роботи з ним. Наприклад, cin - стандартний потоковий об’єкт вводу (клавіатура), cout – виводу (монітор). Робота з фізичним пристроєм за допомогою потоків є буферизованою.
Оператори потокового вводу-виводу – перевантажені в бібліотеці IOStream оператори вводу даних в потік << і виводу даних з потоку >> (с.66). Приклади: cin>>x;//вивід з стандартного потоку вводу cout<<x;//ввід у стандартний потік виводу Флагі форматування – в бібліотеці IOStream члени дані класу ios, які призначені для форматування потоку вводу-виводу (с.64). Наприклад, установка в потоці виводу флагу hex: cout.flags(ios::hex);//виводити в шістнадцятковому форматі Маніпулятор – в бібліотеці IOStream спеціальна функція, яка керує станом потоку вводу-виводу, отримує і повертає посилання на потоковий об’єкт (с.65). Наприклад маніпулятор hex: #include <iomanip.h>//бібліотека маніпуляторівcout<<hex<<16<<endl;//вивести в шістнадцятковому вигляді 16Середовище розробки (framework) -набір програмних компонентів (часто класів), що надають деякі базові послуги в певній області. Таким чином, середовище розробки експортує класи і механізми, які клієнти можуть використовувати або адаптувати. Borland С++ Builder - інтегроване середовище розробки основане на візуальному об’єктно-орієнтованому програмуванні мовою С++ і призначене для розробки програмного забезпечення для Windows і Linux, розподіленого програмного забезпечення з використанням технологій COM і CORBA, систем роботи з базами даних, Internet і т.п. Однією з основних частин С++ Builder є бібліотека візуальних компонентів VCL [66-83]. Бібліотека візуальних компонентів VCL (Visual Component Library) – об’єктно-орієнтована бібліотека програмних компонентів (класів) загального призначення (framework), яка використовується в Borland C++ Builder і Delphi [66-83] (с.73). В бібліотеку входять класи для створення графічного інтерфейсу програми, класи для доступу до баз даних, класи, в яких інкапсульовані різноманітні функції Win32API, службові та інші класи. Класи VCL утворюють ієрархію зі спільним базовим класом TObject. Компонент VCL – програмний компонент (клас бібліотеки VCL, базовий від TComponent), який використовується для розробки додатків Windows. Компоненти можна умовно поділити на службові та елементи керування. Компонент VCL володіє властивостями, методами і подіями. Елементи керування VCL – видимі компоненти VCL (базовий клас - TControl), які використовуються для побудови графічного інтерфейсу програми з користувачем (с.87). Бувають віконні (походять від TWinControl) і графічні (походять від TGraphicControl). Віконні елементи являють собою вікно ОС Windows, можуть отримувати фокус вводу і служити контейнерами для інших елементів, але використовують більше системних ресурсів. Приклад динамічного створення компоненту класу TButton:
TButton *Btn=new TButton(Panel1);//динамічно створити кнопку Властивості компоненту VCL (property) – члени класу компоненту, які визначають певні характеристики об’єкту. На відміну від полів (членів даних) класу властивості самі не зберігають дані, а можуть використовувати методи читання і запису у відповідні захищені поля класу, чим забезпечується їх перевага (с.126). Приклад використання властивості Text об’єкту Edit1: Edit1->Text="Hello";//вивести рядок в текстове поле Методи компоненту VCL (method) – функції-члени класу компоненту, які виконують певні обчислювальні процедури над об’єктом (с.126). Приклад використання методу Close об’єкту Form1: Form1->Close();//закрити форму Подія компоненту VCL (event) – типізований вказівник на певний метод в екземплярі класу (с.126). Подія дозволяє компоненту реагувати на певний вплив (наприклад, натиск кнопкою миші на ньому) і пов'язує цей вплив з певним кодом (функцією обробки події). Для визначення подій використовуються властивості. Більшість стандартних подій (OnKeyDown, OnMouseMove, OnMouseDown) відповідають повідомленням Windows (Windows Message). Приклад: //вказати функцію-обробник події OnClick об’єкту Button1Button1->OnClick=Button1Click; Інтерфейс програмування Win32 API (Application Programming Interface) – інтерфейс програмування додатків для 32-х розрядних версій Windows, який описує сукупність низькорівневих системних функцій і структур загального призначення, розміщених у файлах dll ОС Windows. Паралелізм - означає одночасне виконання декількох програм на одній ЕОМ. Паралельна програма складається з одного або декількох програмних компонентів (процесів), які можуть виконуватися паралельно. Виконання паралельної програми визначається як будь-яке чергування атомарних (нероздільних) команд завдань. Потік керування (thread) – окремий процес. Запуск потоку керування приводить до виникнення незалежної динамічної діяльності в системі; дана система може мати декілька одночасно виконуваних потоків, деякі з яких можуть динамічно виникати і знищуватися. У VCL для створення потоків використовується клас TThread. Синхронізація використовується для контролю виконання паралельних процесів, наприклад, два процеси не можуть звертатись до одного ресурсу одночасно. Бібліотека динамічної компоновки DLL (Dynamic-link Library) - набір програмних компонентів (функцій, класів) і ресурсів, які упаковані в один пов’язуваний бінарний модуль, і які можуть динамічно (на етапі виконання) використовуватись кількома програмами (с.129). DLL основані на механізмі підтримки повторного використання програмних компонентів на рівні бінарних файлів у Windows. Модель компонентних об’єктів COM (Component Object Model) об’єктно-орієнтована технологія об’єднання універсальних бінарних програмних компонентів (об’єктів) для Windows [84-86] (с.130). Підтримує повторене використання і можливість взаємодії об’єктів незалежно від мови програмування на якій вони були розроблені (на відміну від DLL) і включає сервери, клієнти, інтерфейси, елементи керування ActiveX, технологію зв’язування і упровадження об’єктів OLE і автоматизацію.
Об’єкт COM – екземпляр класу COM в сервері COM. Сервер COM - програма-сервер, яка організовує доступ до створеного в ній об’єкту COM, реалізуючи інтерфейси. Клієнт COM - програма-клієнт, яка, використовуючи інтерфейс, отримує доступ до об’єкту COM. Інтерфейс COM – інтерфейс, який визначає відкриті методи, які використовуються для доступу до об’єкту COM. Клас COM (CoClas) – реалізація інтерфейсу COM в сервері COM. Бібліотека типу (type library) СОМ – бінарний файл, який використовується для визначення типів: інтерфейсів, диспінтерфейсів, класів COM і інших елементів COM. Вміст бібліотеки типу аналогічний вмісту заголовного файлу С++, але до неї можливий доступ незалежно від мови програмування, оскільки бібліотека типу - це відкомпільована версія файлу IDL. Елемент керування ActiveX (OLE) – внутрішньопроцесний сервер COM у вигляді бінарного програмного модуля (DLL), який являє собою універсальний програмний компонент, який може інтегруватися в існуючі додатки (клієнти COM) для розширення їх можливостей (с.132). Елемент ActiveX володіє властивостями, методами і подіями. OLE Automation (OLE автоматизація) – механізм, оснований на COM, який забезпечує програмовану модель функціональних можливостей додатку незалежну від мови реалізації, автоматично визначає стандартні типи даних і забезпечує перетворення типів і транспортування всіх необхідних параметрів, забезпечує стандартний механізм, за допомогою якого керуюча програма може проаналізувати і ідентифікувати методи і властивості інтерфейсу. Автоматизація передбачає диспетчерські інтерфейси (IDispatch), сервери і клієнти (контролери) автоматизації, якими можуть бути мови програмування Visual Basic, VBA, VBScript, Java. Бібліотека активних шаблонів ATL (Active Template Library) – бібліотека програмних компонентів, яка використовується для полегшення розробки компонентів COM. Модель розподілених компонентних об’єктів DCOM (Distributed СОМ) - це розвиток моделі СОМ для розподілених програмних компонентів, у якій підтримується об'єктний протокол, який дає можливість прямого доступу об'єктів СОМ один до одного за допомогою мережі. Архітектура посередника запитів типового об’єкта CORBA (Common Object Request Broker Architecture) об’єктно-орієнтована технологія об’єднання програмних компонентів для побудови розподілених додатків (с.135). Підтримує можливість взаємодії об’єктів незалежно від мови програмування, на якій вони були розроблені, і архітектури, на якій вони використовуються, і включає сервери з реалізацією об’єкту (Skeleton), клієнти з замісником об’єкту (Stub), інтерфейси і брокери об’єктних запитів (ORB) [41].
Брокер об’єктних запитів (ORB) - архітектурний елемент CORBA, який визначає правила взаємодії об'єктних компонентів один з одним, а також дозволяє змішувати компоненти. ORB - це типовий серверний додаток, що опитує певний порт і чекає доступу в процесі з'єднання каналу TCP/IP. Клієнтські додатки з'єднуються з ORB, посилають повідомлення про запити і отримують у відповідь повідомлення від ORB. Основна функція ORB - ініціалізувати посередницькі запити для виклику методу. Мова опису інтерфейсу IDL (Interface Definition Language) – використовується для визначення інтерфейсів з метою уникнути його залежності від мови програмування, яка визначає реалізацію (с.135). Бібліотека основних класів Microsoft MFC (Microsoft Foundation Classes) – об’єктно-орієнтована бібліотека програмних компонентів (класів) загального призначення (framework), яка використовується в середовищі розробки Microsoft Visual C++ (с.139). В бібліотеку входять класи C++ для створення графічного інтерфейсу програми, класи для доступу до баз даних, класи, в яких інкапсульовані різноманітні функції Win32API, службові та інші класи. Java – об’єктно-орієнтована мова програмування, призначена в основному для створення архітектурно-незалежного і розподіленого програмного забезпечення. Архітектурна незалежність досягається шляхом інтерпретації скомпільованого байт-коду на віртуальній машині Java. JavaBeans – програмні компоненти у вигляді Java-класів. Компоненти володіють властивостями, методами і подіями. .NET – об’єктно-орієнтована технологія об’єднання програмних компонентів, яка забезпечує загальномовне середовище виконання CLR (common language runtime), загальну систему типів CTS (common type system), бібліотеку класів.NET Framework і призначена, в основному, для створення архітектурно-незалежного, мовно-незалежного і розподіленого програмного забезпечення [98-112] (с.149). Загальномовне середовище виконання основане на використанні проміжної мови IL (intermediate language) і її компіляції безпосередньо перед виконанням. .NET Framework – бібліотека класів загального призначення, яка використовується для платформи.NET (с.149). С# - об’єктно-орієнтована мова програмування, призначена в основному для створення програмного забезпечення в рамках платформи.NET [98-112]. Сбір сміття – технологія розподілу пам’яті, яка в процесі виконання програми автоматично визначає втрачені блоки пам’яті і робить їх вільними. Використовується в сучасних мовах програмування, наприклад, у Java і С#. Уніфікована мова моделювання UML (Unified Modeling Language) є графічною мовою для візуалізації, специфікації, конструювання і документування систем, в яких велика роль належить, програмному забезпеченню. За допомогою UML можна розробити детальний план створюваної системи, що містить не тільки її концептуальні елементи, такі як системні функції і бізнес-процеси, але і конкретні особливості, наприклад класи, написані на спеціальних мовах програмування, схеми баз даних і програмні компоненти багатократного використання.
Перспективи розвитку об’єктно-орієнтованих технологій у програмуванні – створення програмних компонентів високого рівня абстракції, незалежних від архітектури і мови програмування для побудови розподілених додатків.
2 Основи програмування мовою C++ Найпростіша програма //директива підстановки файлу iostream.h,//в якому описаний об’єкт cout і оператор <<#include <iostream.h>void main()//головна функція{cout<<"Hello world!"; //команда виводу рядка на екран}Директиви препроцесора //директива підстановки файлу iostream.h#include <iostream.h>//директива визначення макросу K#define K 15//директива визначення макросу F#define F(x) x*x+K//директива підстановки файлу File1.h#include "File1.h"//головна функціяvoid main(){x=2;prn;//макропідстановка//директива підстановки файлу File2.h#include "File2.h"prn;//макропідстановка} // File1.h//директива визначення макросу prn#define prn cout<<F(x)<<endlfloat x;//оголошення глобальної змінної // File2.h//директива видалення визначення макросу F#undef F//директива визначення макросу F(x)#define F(x) x*x+22.3 Основні типи даних С++
|
|||||||||
Последнее изменение этой страницы: 2017-01-24; просмотров: 320; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.187.121 (0.025 с.) |