Protokol (objektově orientované programování) - Protocol (object-oriented programming)
![]() | Tento článek je věcná přesnost je sporný.Březen 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Protokol je termín používaný konkrétně objektově orientované programování jazyky s řadou konkrétních významů, které mohou jiné jazyky nazývat rozhraní nebo vlastnost.
Protokol při jiném použití je podobný a Komunikační protokol, označující řetězec interakcí mezi volajícím a objektem.
Mezi jazyky, které používají výraz Protocol, patří:
V těchto jazycích je protokol běžným prostředkem pro diskrétní předměty komunikovat mezi sebou. Toto jsou definice metody a hodnoty, na kterých se objekty dohodnou, aby spolupracovaly, jako součást API.
Protokol / rozhraní je popis:
- Zprávy, kterým objekt rozumí.
- Argumenty, kterými mohou být tyto zprávy dodány.
- Typy výsledků, které tyto zprávy vrátí.
- The invarianty které jsou zachovány navzdory úpravám stavu objektu.
- Výjimečné situace, které budou muset klienti k objektu vyřešit.
- (Pouze pro použití ve stylu komunikace :) Sekvence volání a rozhodovací body metod, jako by byly zastoupeny v diagramech interakce UML: Komunikační diagram, Sekvenční diagram, Přehled přehledu interakcí /Schéma činnosti, Časový diagram.
Jsou-li objekty úplně zapouzdřený pak protokol popíše jediný způsob, jakým mohou být objekty přístupné jinými objekty. Například v Jáva rozhraní, Srovnatelný interface specifikuje metodu porovnat s() které implementační třídy musí implementovat. To znamená, že například samostatná metoda řazení může třídit jakýkoli objekt, který implementuje srovnatelné rozhraní, aniž by bylo nutné vědět něco o vnitřní povaze třídy (kromě toho, že dva z těchto objektů lze porovnat pomocí porovnat s()).
Nějaký programovací jazyky poskytnout explicitní jazykovou podporu pro protokoly / rozhraní (Ada, C#, D, Šipka, Delphi, Jít, Jáva, Logtalk, Objekt Pascal, Cíl-C, PHP, Raketa, 7. semeno, Rychlý ). v C ++ rozhraní jsou známá jako abstraktní základní třídy a jsou implementována pomocí čisté virtuální funkce. Objektově orientované funkce v Perl také podporují rozhraní.
Neobjektově orientované jazyky
Ačkoli programovací jazyk Go není obecně považován za objektově orientovaný jazyk, umožňuje definovat metody na uživatelem definovaných typech. Go má typy „rozhraní“, které jsou kompatibilní s jakýmkoli typem, který podporuje danou sadu metod (typ nemusí explicitně implementovat rozhraní). Prázdné rozhraní, rozhraní{}
, je kompatibilní se všemi typy.
Všimněte si, že Funkcionální programování a distribuované programování jazyky tento výraz používají protokol podobný využití komunikace (tj. specifikace povoleného výměny zpráv, důraz na výměny, ne na zprávy)[Citace je zapotřebí ]. Zejména následující jsou také považovány za součást protokolu v těchto jazycích:
- Povolené sekvence zpráv,
- Omezení uložená kterémukoli účastníkovi komunikace,
- Očekávané efekty, ke kterým dojde při zpracování zprávy.
Zadejte třídy v jazycích jako Haskell se používají pro mnoho věcí, pro které se používají protokoly.
Viz také
- Koncept (obecné programování)
- Delegování (programování)
- Protokoly v Objective-C
- Třída (informatika)
- Zapouzdření (informatika)
- Veřejné rozhraní
- Seznam základních témat informatiky
- Aplikační programovací rozhraní
Reference
- ^ „Programovací jazyk Objective-C: Protokoly“. Apple Inc.. Citováno 7. října 2012.
- ^ Oficiální dokumentace k Pythonu 3, Vrstva abstraktního objektu