Sąsaja (programavimas)
Sąsaja – abstraktus objekto klasės aprašas, nusakantis, kokius metodus ši klasė privalo turėti. Tą pačią sąsają gali išpildyti keletas programoje naudojamų klasių. Ta pati klasė neretai išpildo keletą sąsajų. Galima sąsajų hierarchija, paveldint būtinus išpildyti metodus iš vieno ar kelių tėvinių sąsajų. Sąsajas palaiko daugelis modernių programavimo kalbų (Java, C#). Yra specialių kalbų skirtų išimtinai sąsajoms aprašyti, pvz., CORBA IDL. Sąsajos yra labai panašios į abstrakčias klases, tik jose, skirtingai nuo abstrakčių klasių, nei viena iš aprašytų funkcijų negali turėti realizacijos aprašo, šis aprašas talpinamas klasėje, kuri išpildo sąsają. Be to, kai kuriose programvimo kalbose klasė gali būti kildinama tik iš vienos tėvinės klasės, tačiau išpildyti daug sąsajų. Sąsaja apibrėžia bendravimo tarp programinės įrangos komponentų detales – konstantas, duomenų tipus, procedūrų tipus, išimtinius atvejus (exception) bei metodų aprašus (signature). Taip pat dažnai aprašomos rekomendacijos metodų funkcionalumui. Programinio modulio A {\displaystyle A} sąsaja specialiai atskiriama nuo modulio realizacijos, kur ne tik realizuojami sąsajos procedūros ir metodai, bet taip pat yra ir privatūs kintamieji bei kita verslo logika. Bet kuris programinis modulis B {\displaystyle B} (modulio A klientas), bendraujantis su A {\displaystyle A} yra verčiamas naudoti modulį tik naudojantis sąsaja. To privalumas – bet kada galima pakeisti modulio A {\displaystyle A} realizaciją bet kokia kita realizacija, palaikančia sąsają, ir modulis B {\displaystyle B} veiks be pakeitimų.