Ndërfaqja (programimi i orientuar nga objekti)Në programimin e orientuar nga objekti, një ndërfaqe ose tip protokolli [a] është një lloj i të dhënave që vepron si një abstraksion i një klase . Ai përshkruan një grup firmash të metodës, zbatimet e të cilave mund të kryhen nga klasa të cilat nuk janë domosdoshmërisht të lidhura logjikisht me njëra-tjetrën. [1] Një klasë që ofron metodat e listuara në një protokoll thuhet se miraton protokollin, [2] ose zbaton ndërfaqen. [1] Nëse objektet janë të kapsuluar plotësisht, atëherë protokolli është e vetmja mënyrë në të cilën ato mund të aksesohen nga objekte të tjera. Për shembull, në Java, ndërfaqja Disa gjuhë programimi ofrojnë mbështetje të qartë gjuhësore për protokollet ( Ada, C#, D, Dart, Delphi, Go, Java, Logtalk, Object Pascal, Objective-C, OCaml, PHP, Racket, Seed7, Swift, Python 3.8). Në gjuhët që mbështesin trashëgimi të shumëfishtë, si C++, ndërfaqet zbatohen si klasa abstrakte . Në gjuhët pa mbështetje të qartë, protokollet shpesh janë ende të pranishme si konventa. Kjo njihet si shtypja e rosës . Për shembull, në Python, çdo klasë mund të zbatojë një metodë Klasat e tipit në gjuhë si Haskell, ose nënshkrimet e moduleve në ML dhe OCaml, përdoren për shumë nga gjërat për të cilat përdoren protokollet. Në Rust, ndërfaqet quhen trait. [4] pub trait Talk{
fn new(name: &'static str) -> Self;
fn talk(self);
}
struct Human{ name: &'static str}
impl Talk for Human{
fn new(name: &'static str) -> Human {
Human { name: name}
}
fn talk(self){
println!("{} is talking ! KABOOM",self.name);
}
}
fn main(){
let tom : Human = Talk::new("Tom");
tom.talk();
}
|