Gränssnitt (computing)

se även: Application binary interface och Application programming interface

ett mjukvarugränssnitt kan hänvisa till ett brett spektrum av olika typer av gränssnitt på olika ”nivåer”: ett operativsystem kan Gränssnitt med bitar av hårdvara. Program eller program som körs på operativsystemet kan behöva interagera via dataströmmar, filter och rörledningar; och i objektorienterade program kan objekt i ett program behöva interagera via metoder.

in practiceEdit

en nyckelprincip för design är att förbjuda åtkomst till alla resurser som standard, vilket endast tillåter åtkomst genom väldefinierade ingångspunkter, dvs. gränssnitt. Programvarugränssnitt ger tillgång till datorresurser (som minne, CPU, lagring etc. direkt åtkomst (dvs. inte genom väl utformade gränssnitt) till sådana resurser av programvara kan ha stora konsekvenser-ibland katastrofala—för funktionalitet och stabilitet.

gränssnitt mellan programvarukomponenter kan ge konstanter, datatyper, typer av procedurer, undantagsspecifikationer och metodsignaturer. Ibland definieras också offentliga variabler som en del av ett gränssnitt.

gränssnittet för en programmodul a definieras medvetet separat från implementeringen av den modulen. Den senare innehåller den faktiska koden för de procedurer och metoder som beskrivs i gränssnittet, liksom andra ”privata” variabler, procedurer etc. En annan mjukvarumodul B, till exempel klienten till A, som interagerar med A tvingas göra det endast genom det publicerade gränssnittet. En praktisk fördel med detta arrangemang är att byte av implementeringen av A med en annan implementering av samma gränssnitt inte borde leda till att B misslyckas—Hur a internt uppfyller gränssnittets krav är inte relevant för B, som bara handlar om gränssnittets SPECIFIKATIONER. (Se även liskovs substitutionsprincip.)

på objektorienterat språkRedigera

huvudartiklar: Protokoll (objektorienterad programmering) och koncept (Generisk programmering)

på vissa objektorienterade språk, särskilt de utan full multipel arv, används termen gränssnitt för att definiera en abstrakt typ som inte innehåller några data men definierar beteenden som metodsignaturer. En klass som har kod och data för alla metoder som motsvarar det gränssnittet och förklarar så sägs implementera det gränssnittet. Dessutom kan man, även på enstaka arvsspråk, implementera flera gränssnitt och kan därför vara av olika slag samtidigt.

ett gränssnitt är således en typdefinition; var som helst ett objekt kan bytas ut (till exempel i ett funktions-eller metodsamtal) kan typen av objektet som ska bytas definieras i termer av ett av dess implementerade gränssnitt eller basklasser snarare än att specificera den specifika klassen. Detta tillvägagångssätt innebär att alla klasser som implementerar det gränssnittet kan användas. Till exempel kan en dummy-implementering användas för att möjliggöra utveckling innan den slutliga implementeringen är tillgänglig. I ett annat fall kan en falsk eller mock-implementering ersättas under testningen. Sådana stubbimplementeringar ersätts av verklig kod senare i utvecklingsprocessen.

vanligtvis innehåller en metod som definieras i ett gränssnitt Ingen kod och kan därför inte själv kallas; den måste implementeras av icke-abstrakt kod för att köras när den åberopas. Ett gränssnitt som heter ” Stack”kan definiera två metoder: push() och pop(). Det kan implementeras på olika sätt, till exempel FastStack och GenericStack—den första är snabb, arbetar med en datastruktur med fast storlek och den andra med en datastruktur som kan ändras, men till kostnaden för något lägre hastighet.

även om gränssnitt kan innehålla många metoder kan de bara innehålla en eller till och med ingen alls. Till exempel definierar Java-språket gränssnittet Readable som har singeln read() – metoden; olika implementeringar används för olika ändamål, inklusive BufferedReaderFileReaderInputStreamReaderPipedReader och StringReader. Markeringsgränssnitt som Serializable innehåller inga metoder alls och tjänar till att ge körtidsinformation till Generisk bearbetning med reflektion.

programmering till gränssnittetredigera

användningen av gränssnitt möjliggör en programmeringsstil som kallas programmering till gränssnittet. Tanken bakom detta tillvägagångssätt är att basera programmeringslogik på gränssnitten för de objekt som används, snarare än på interna implementeringsdetaljer. Programmering till gränssnittet minskar beroendet av implementeringsdetaljer och gör koden mer återanvändbar.

genom att trycka på den här ideen till det yttersta lämnar inversionen av kontrollen sammanhanget för att injicera koden med de specifika implementeringarna av gränssnittet som kommer att användas för att utföra arbetet.

Related Posts

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *