го типу, можна використовувати вже існуючий, тільки змінивши в ньому поведінку системи. За допомогою поліморфізму можна повторно використовувати базовий клас; використовувати будь-якого нащадка або методи, які використовує базовий клас.
Параметричний поліморфізм
Використовуючи Параметричний поліморфізм можна створювати універсальні базові типи. У разі параметричного поліморфізму, функція реалізується для всіх типів однаково і таким чином функція реалізована для довільного типу. У параметричному полиморфизме розглядаються параметричні методи і типи.
Параметричні методи. Якщо поліморфізм включення впливає на наше сприйняття об'єкта, то параметричні поліморфізм впливає на використовувані методи, так як можна створювати методи споріднених класів, відкладаючи оголошення типів до часу виконання. Щоб уникнути написання окремого методу кожного типу застосовується параметричний поліморфізм, при цьому тип параметрів буде таким же параметром, як і операнди.
Параметричні типи. Замість того щоб писати клас для кожного конкретного типу слід створити типи, які будуть реалізовані під час виконання програми, тобто ми створюємо параметричний тип. Поліморфізм перевизначення. Абстрактні методи часто ставляться до відкладеним методам. Клас, в якому визначений цей метод, може викликати метод і поліморфізм забезпечує виклик відповідної версії відкладеного методу в дочірніх класах. Спеціальний поліморфізм допускає спеціальну реалізацію для даних кожного типу.
Поліморфізм-перевантаження - це окремий випадок поліморфізму. За допомогою перевантаження одне і те ж ім'я може позначати різні методи, причому методи можуть різнитися кількістю і типом параметрів, тобто не залежать від своїх аргументів. Метод може не обмежуватися специфічними типами параметрів багатьох різних типів.
3.1 Принцип сохраняемости
Збереженість - здатність об'єкта існувати в часі, переживаючи породив його процес, і/або в просторі, переміщаючись зі свого первісного адресного простору.
Будь програмний об'єкт існує в пам'яті і живе в часі. Спектр сохраняемости об'єктів охоплює:
· Проміжні результати обчислення виразів.
· Локальні змінні у виклику процедур.
· Власні (статичні) змінні функції, глобальні змінні і динамічно створювані дані.
· Дані, що зберігаються між сеансами виконання програми.
· Дані, які зберігаються при переході на нову версію програми.
· Дані, які взагалі переживають програму.
Традиційно, першими трьома рівнями займаються мови програмування, а останніми - бази даних. Мови програмування, як правило, не підтримують збереженість в повному обсязі. Введення сохраняемости, як нормальної складової частини об'єктного підходу призводить до об'єктно-орієнтованим баз даних (OODB). На практиці подібні бази даних будуються на основі перевірених часом моделей - послідовних, індексованих, ієрархічних, мережевих або реляційних, але програміст може ввести абстракцію об'єктно-орієнтованого інтерфейсу, через який запити до бази даних та інші операції виконуються в термінах об'єктів, час життя яких перевершує час життя окремої програми. При використанні однорівневої пам'яті як в System/38 розробка OODB істотно спрощується.
Збереженість - це не тільки проблема збереження даних. У OODB має сенс зберігати і класи, так, щоб програми могли правильно інтерпретувати дані. Це створює великі труднощі в міру збільшення обсягу даних, особливо, якщо клас об'єкта раптом потрібно змінити.
У більшості систем об'єктам при їх створенні відводиться місце в пам'яті, яке не змінюється і в якому об'єкт знаходиться все своє життя. Однак для розподілених систем бажано забезпечувати можливість перенесення об'єктів у просторі, так, щоб їх можна було переносити з машини на машину і навіть при необхідності змінювати форму представлення об'єкту в пам'яті.
програмування пошукова система
3.1 Паттерни проектування
Що таке патерн проектування?
За словами Крістофера Олександра, «будь патерн описує задачу, яка знову і знову виникає в нашій роботі, а також принцип її вирішення, причому таким чином, що це рішення можна потім використовувати мільйон разів, нічого не вигадуючи заново ». Хоча Олександр мав на увазі патерни, що виникають при проектуванні будинків і міст, але його слова вірні і відносно патернів об'єктно-орієнтованого проектування. Наші рішення виражаються в термінах об'єктів і інтерфейсів, а не стін і дверей, але в обох випадках сенс патерну - запропонувати вирішення певної задачі в конкретному контек...