Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Розробка програмних модулів
Об’єктно-орієнтоване програмування (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. Основу ООП складають три основні концепції: інкапсуляція, успадкування та поліморфізм. Одною з переваг ООП є краща модульність програмного забезпечення (тисячу функцій процедурної мови, в ООП можна замінити кількома десятками класів із своїми методами). Попри те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих, коли розвиток комп'ютерів та комп'ютерних мереж дозволив писати надзвичайно об'ємне і складне програмне забезпечення, що змусило переглянути підходи до написання програм. Сьогодні багато мов програмування або підтримують ООП (Lua) або ж є цілком об'єктно-орієнтованими (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3, Swift, Vala) [9]. Клас поряд з поняттям «Об'єкт», є важливим поняттям об'єктно-орієнтованого підходу в програмуванні (хоча існують і беcклассовие об'єктно-орієнтовані мови, наприклад, JavaScript). Під класом розуміється якась сутність, яка задає деякий загальна поведінка для об'єктів. Таким чином, будь-який об'єкт може належати або належати певного класу, тобто володіти або з мати поведінкою, яка даний клас увазі. Клас визначає для об'єкта контракт, тобто правила, за допомогою яких з об'єктом можуть працювати інші об'єкти (зазвичай це робиться за допомогою визначення методів класу). Крім того класи можуть перебувати один з одним в різних відносинах, таких як Спадкування або Агрегація. Для створення додатку мною було створено дванадцять класів, які виконують ролі: - три моделі; - два контролери; - шість класів які виконують запити. Рис. 3.5 Діаграма класів RDFolderModel -клас, який відіграє роль моделі для створення об’єкту папок, що знаходяться на сервері. Атрибути: - ‘title’ – заголовок; - ‘uuid’ – унікальний ідентифікатор; - ‘parent’ – ідентифікатор батьківської папки. Операції: - ‘jsonConvert’ – приватний метод, який перетворює вхідні дані у потрібний формат; - ‘initWithJson’ – ініціалізація об’єкту через вхідні дані. RDItemModel - клас, який відіграє роль моделі для створення об’єкту файла, що знаходяться у папці на сервері. Атрибути: - ‘uuid’ – унікальний ідентифікатор; - ‘title’ – заголовок файлу; - ‘size’ – розмір файлу; - ‘parentId’ – ідентифікатор батьківської папки; - ‘icon’ – іконка файлу; - ‘isFolder’ – тип - папка; - ‘downloadUrl’ – url для завантаження. Операції: - ‘jsonConvert’ – приватний метод, який перетворює вхідні дані у потрібний формат; - ‘initWithJson’ – ініціалізація об’єкту через вхідні дані. RDDeleteRequst – клас, який відповідає за відправку запиту до серверу с командою на видалення файлу. Операції: - ‘deleteItems’ – публічний метод видалення файлу. RDGetItemSender - клас, який відповідає за відправку запиту до серверу с командою на отримання інформації о файлі. Операції: - ‘getItemWithCompletionHandler’ – публічний метод класу на отримання інформації о файлі. RDgetAccessToken – клас, отримання коду доступу до API. Протокол: - ‘refresh’ – протокол оновлення даних. Операції: - ‘getAccessToken’ – метод отримання коду доступу. RDInsertRequest - клас, який відповідає за відправку запиту до серверу с командою на відправку файлу. Операції: - ‘uploadFileForImage’ – метод відправки зображення з телефону. RDSaveRequest - клас, який відповідає за відправку запиту до серверу с командою на збереження файлу. Операції: - ‘saveItems’ – метод збереження файлу. RDRootFolder - клас, який відповідає за відправку запиту до серверу с командою на отримання списку файлу. Атрибути: - ‘folderObjectsArray’ – масив папок; - ‘itemsObjectsArray’ – масив файлів. Операції: - ‘getChaildsWithCompletionHandler’ – метод класу, що виконує запит на список файлів. RDTableViewCell – модель поля таблиці. Атрибути: - ‘icon’– зображення файлу; - ‘title’ – зоголовок файлу; - ‘size’ – розмір файлу. RDTableViewController - клас, контролер, який відповідає за роботу таблиці файлів сховища. Атрибути: - ‘tableView' – підключення компоненту таблиці; - ‘folders’ – масив папок; - ‘items’ – масив файлів. Операції: - ‘setup’ – метод запуску таблиці; - ‘reloadWithFolder’ – перезавантаження таблиці через папку. RDWebView – клас, що надає змогу роботи компонента WebView. Атрибути: - ‘webView’ – підключення компоненту webView; - ‘getAccessToken’ – підключення класу RDgetAccessToken; - ‘authCode’ – код авторизації; - ‘previousTime’ – час виклику web-браузеру. Операції: - ‘authCodeWithId’ – метод авторизації в хмарному сховищі. MainViewController – клас, відіграє роль головного контролеру. Атрибути: - ‘editButton' – підключення кнопки редагування; - ‘webViewController’ – підключення класу web-браузера; - ‘tableViewController’ – підключення контролеру таблиці; - ‘prethentView’ – підключення стартового вікнв; - ‘googleButton’ – підключення кнопки google; - ‘startViewButton’ – кнопка повернення до головного екрану; - ‘refreshButton’ – кнопка оновлення списку файлів таблицці; - ‘logOut’ – кнопка виходу з акаунту; - ‘dropBoxButton’ – кнопка DropBox; - ‘folder’ – масив папок; - ‘deleteRequest’ – підключення класу видалення; - ‘selectedItemsId’ – ідентифікатор обраного файлу; - ‘selectedItemsTitle’ – заголовок обраного файлу; - ‘selectedItemsDownload’ – адреса завантаження; - ‘saveRequst’ – підключення класу, що дозволяе завантажети файл в телефон; - ‘insertRequest’ – підключення класу, що дозволяе завантажети файл в хмарне сховище; - ‘step’ – крок каталогу. Операції: - ‘googleAction’ – метод запуску даних Google диску; - ‘back’ – метод повернення до попередньої папки; - ‘dropBoxAction’ – метод запуску даних DropBox; - ‘editButton’ – метод, який викликає меню редагування; - ‘toStartView’ – метод повернення до головного екрану; - ‘refreshAction’ – метод оновлення списку файлів; - ‘logOut’– метод виходу з хмарних сховищ.
|