Сучасні об’єктно-орієнтовані технології 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сучасні об’єктно-орієнтовані технології



Рекомендована література: [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 об’єкту Button1

Button1->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+2

2.3 Основні типи даних С++



Поделиться:


Последнее изменение этой страницы: 2017-01-24; просмотров: 320; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.187.121 (0.025 с.)