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

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