Зміст
Введення
1. Постановка завдання
. Коротка теорія
2.1 Основні методи об'єктно-орієнтованого програмування
. 2 Принцип сохраняемости
. 3 Паттерни проектування
3. Хід виконання
3.1 Вибір мови програмування і середовища розробки програми
. 2 Реалізація основних принципів ООП
. 3 Реалізація патерну
. 4 Використання принципу сохраняемости
. 5 Опис користувальницького інтерфейсу
Висновок
Список літератури
Додаток А. Лістинг програми
Введення
Щоб писати більш-менш складну програму, необхідний особливий підхід до програмування. В даний час таким підходом є об'єктно-орієнтоване програмування, яке акумулювало кращі ідеї, втілені в структурному програмуванні, у поєднанні з потужними новими концепціями, що дозволяють оптимально організувати програми. ООП дозволяє розкласти проблему на пов'язані між собою завдання. Кожна проблема стає самостійним об'єктом, який містить свої власні коди і дані, які відносяться до цього об'єкта. У цьому випадку вихідна задача в цілому спрощується, і програміст отримує можливість оперувати великими за обсягом програмами.
1. Постановка завдання
Реалізувати програму «Пошукова система на основі хеш-таблиць».
Програма повинна мати графічний користувальницький інтерфейс. Мови програмування - C ++, C #, Java, PHP5.
Обов'язкові вимоги:
використання методів об'єктно-орієнтованого програмування (мінімум 2 основних «кити»);
використання принципу сохраняемости;
застосування мінімум одного патерну проектування.
. Коротка теорія
3.1 Основні методи об'єктно-орієнтованого програмування
Абстракція - в об'єктно-орієнтованому програмуванні це додання об'єкту характеристик, які відрізняють його від усіх інших об'єктів, чітко визначаючи його концептуальні межі. Основна ідея полягає в тому, щоб відокремити спосіб використання складових об'єктів даних від деталей їх реалізації у вигляді більш простих об'єктів, подібно до того, як функціональна абстракція розділяє спосіб використання функції і деталей її реалізації в термінах більш примітивних функцій. Таким чином, дані обробляються функцією високого рівня за допомогою виклику функцій низького рівня. Такий підхід є основою об'єктно-орієнтованого програмування. Це дозволяє працювати з об'єктами, не вдаючись у особливості їх реалізації. У кожному конкретному випадку застосовується той чи інший підхід: інкапсуляція, поліморфізм або спадкування. Наприклад, при необхідності звернутися до прихованим даними об'єкта, слід скористатися инкапсуляцией, створивши, так звану, функцію доступу або властивість. Абстракція даних - популярна і в загальному невірно визначається техніка програмування. Фундаментальна ідея полягає в розділенні несуттєвих деталей реалізації підпрограми і характеристик, істотних для коректного її використання. Такий поділ може бути виражене через спеціальний «інтерфейс», зосереджують опис всіх можливих застосувань програми. З погляду теорії множин, процес являє собою організацію для групи підмножин свого множини. Див. Також Закон зворотного відношення між змістом і обсягом поняття.
Інкапсуляція - властивість мови програмування, що дозволяє користувачеві не замислюватися про складність реалізації використовуваного програмного компонента (що у нього всередині?), а взаємодіяти з ним за допомогою наданого інтерфейсу (публічних методів і членів), а також об'єднати і захистити життєво важливі для компонента дані. При цьому користувачеві надається тільки специфікація (інтерфейс) об'єкта. Користувач може взаємодіяти з об'єктом тільки через цей інтерфейс. Реалізується за допомогою ключового слова: public. Користувач не може використовувати закриті дані і методи. Реалізується за допомогою ключових слів: private, protected, internal. Інкапсуляція - один з чотирьох найважливіших механізмів об'єктно-орієнтованого програмування (поряд з абстракцією, поліморфізмом і спадкуванням). Приховування реалізації доцільно застосовувати в наступних випадках: гранична локалізація змін при необхідності таких змін, прогнозованість змін (які зміни в коді треба зробити для заданого зміни функціональності) і прогнозованість наслідків змін.
Спадкування - один з чотирьох найважливіших механізмів об'єктно-орієнтованого програмування (поряд з инкапсуляцией, полім...