Sąsaja (programavimas): Skirtumas tarp puslapio versijų

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Ištrintas turinys Pridėtas turinys
reikia tvarkyti
Nėra keitimo santraukos
Eilutė 1: Eilutė 1:
{{cleanup}}
{{cleanup}}
'''Interfeisas''' – abstraktus [[Objektas (programavimas)|objekto]] [[Klasė (programavimas)| klasės]] aprašas, nusakantis, kokius [[metodas (programavimas)|metodus]] ši klasė privalo turėti. Tą patį interfeisą gali išpildyti keletas programoje naudojamų [[klasė|klasių]]. Ta pati klasė neretai išpildo keletą interfeisų. Galima interfeisų hierarcija, paveldint būtinus išpildyti metodus iš vieno ar kelių tėvinių interfeisų.
'''Sąsaja''' – abstraktus [[Objektas (programavimas)|objekto]] [[Klasė (programavimas)| klasės]] aprašas, nusakantis, kokius [[metodas (programavimas)|metodus]] ši klasė privalo turėti. Tą pačią sąsają gali išpildyti keletas programoje naudojamų [[klasė|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ų.


Interfeisus palaiko daugelis modernių programavimo kalbų ([[Java_(kalba)|Java]], C#). Yra
Sąsajas palaiko daugelis modernių programavimo kalbų ([[Java_(kalba)|Java]], C#). Yra
specialių kalbų skirtų išimtinai interfeisų aprašymams, pvz., [[CORBA]] [[IDL]].
specialių kalbų skirtų išimtinai sąsajoms aprašyti, pvz., [[CORBA]] [[IDL]].


Interfeisai yra labai panašūs į abstrakčios klasės, tik juose, skirtingai nuo [[abstrakti klasė|abstrakčių klasių]], nei viena iš aprašytų funkcijų negali turėti realizacijos aprašo, šis aprašas talpinamas klasėje, kuri išpildo interfeisą. Be to, kai kuriose programvimo kalbose klasė gali būti kildinama tik iš vienos tėvinės klasės, tačiau išpildyti daug interfeisų.
Sąsajos yra labai panašios į abstrakčias klases, tik jose, skirtingai nuo [[abstrakti klasė|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ų.


== Pavyzdys (java) ==
== Pavyzdys (java) ==
Eilutė 20: Eilutė 20:
}
}


Interfeisai naudingi kuriant funkcijas, kurių parametrai gali būti įvairių klasių objektai, jei tik šių objektų klasės turi šių funkcijų algoritmams reikalingus metodus (pavyzdyje – figūros plotui sužinoti). Jei objekto klasė išpildo keletą interfeisų, tokios klasės objektas tinka parametru įvairioms funkcijoms, kurių reikalaujamas argumento tipas gali būti bet kurisinterfeisų.
Sąsajos naudingos kuriant funkcijas, kurių parametrai gali būti įvairių klasių objektai, jei tik šių objektų klasės turi šių funkcijų algoritmams reikalingus metodus (pavyzdyje – figūros plotui sužinoti). Jei objekto klasė išpildo keletą sąsajų, tokios klasės objektas tinka parametru įvairioms funkcijoms, kurių reikalaujamas argumento tipas gali būti bet kurisąsajų.


[[Category:Kompiuterių mokslas]]
[[Category:Kompiuterių mokslas]]
[[en:Interface (computer science)]]
[[en:Interface (computer science)]]
<!--!
<!--!
== PHP5 Programavimo kalbos Interfeiso ir klasės pavyzdys ==
== PHP5 Programavimo kalbos sąsajos ir klasės pavyzdys ==


<?php
<?php

15:04, 16 rugsėjo 2008 versija

   Šį puslapį ar jo dalį reikia sutvarkyti pagal Vikipedijos standartus.
Jei galite, sutvarkykite.

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ų.

Pavyzdys (java)

/** Abstrakti geometrinė figūra */
interface Figūra {
    
   /**
   * Trikampiui, kvadratui ar apskritimui plotas skaičiuojamas
   * skirtingomis formulėmis, taigi šis metodas bus išpildytas
   * skirtingai.
   */
   int plotas();
}

Sąsajos naudingos kuriant funkcijas, kurių parametrai gali būti įvairių klasių objektai, jei tik šių objektų klasės turi šių funkcijų algoritmams reikalingus metodus (pavyzdyje – figūros plotui sužinoti). Jei objekto klasė išpildo keletą sąsajų, tokios klasės objektas tinka parametru įvairioms funkcijoms, kurių reikalaujamas argumento tipas gali būti bet kuri iš sąsajų.