Приложно-програмен интерфейс: Разлика между версии

Изтрито е съдържание Добавено е съдържание
PegasusTeam (беседа | приноси)
Редакция без резюме
PegasusTeam (беседа | приноси)
Редакция без резюме
Ред 76:
По-общо казано API може да бъде разглеждано като съвкупност от всички видове обекти, които могат да призлизат от дефинициите на класовете и свързание с тях възможни поведения. Употребата на API се постига с помощта на публични методи, но в тази интерпретация, методите се разглжедат като технически детайл на начина по който е имплементирано поведението им.
 
Например, клас, представляващ <code>[[Стек (структура от данни)|Stack]]</code> може просто да представи публично два метода - <code>push()</code> (добавя нов елемент към стека и <code>pop()</code> (премахва последния елемент, стоящкойто се намира най-отгоре нав стека).
 
В този случай това API може да се интерпретираобясни като два метода <code>pop()</code> и <code>push()</code>, или по-общо казано като идея, при която някой може да използва елемент от тип <code>Stack</code>, който имплементира (наследява) поведението на стека: една купчина, на която да се добавят или премахват нейните елементи, намиращи се най-отгоре в нея. Втората интерпретация изглежда по-подходяща в духа на [[Обектно-ориентирано програмиране|обектното ориентиране]].
 
Тази концепция може да бъде приложена до там, докъдето интерфейса на класа в едно API няма методи като цяло, а има само поведения свързани с него. Например, API-тата на езиците [[Java language|Java]] и [[Lisp (език за програмиране)|Lisp]] съдържат интерфейс с името Serializable, който е маркерен интерфейс, изискващ всеки клас да го имплементира с поведението на класа [[Serialization|serialized]]. Това не изисква имплементация на публичен метод, а изисква всеки клас, който имплементира този интерфейс да бъде на основата на представяне, което може да бъде записано по всяко време.