Rozhraní (výpočetní) - Interface (computing)

V oblasti výpočetní techniky je rozhraní sdílenou hranicí, přes kterou si vyměňují informace dvě nebo více samostatných součástí počítačového systému . Výměna může probíhat mezi softwarem , počítačovým hardwarem , periferními zařízeními, lidmi a jejich kombinacemi. Některá zařízení počítačového hardwaru, například dotyková obrazovka , mohou odesílat a přijímat data prostřednictvím rozhraní, zatímco jiná, jako je myš nebo mikrofon, mohou poskytovat pouze rozhraní pro odesílání dat do daného systému.

Hardwarová rozhraní

Image
Hardwarová rozhraní přenosného počítače: ethernetová síťová zásuvka (uprostřed), vlevo část portu VGA , vpravo (nahoře) zásuvka portu displeje , vpravo (dole) zásuvka USB 2.0.

Hardwarová rozhraní existují v mnoha komponentách, jako jsou různé sběrnice , úložná zařízení , další I/O zařízení atd. Hardwarové rozhraní je popsáno mechanickými, elektrickými a logickými signály na rozhraní a protokolem pro jejich sekvenování (někdy se nazývá signalizace). Standardní rozhraní, jako je SCSI , odděluje návrh a zavedení výpočetního hardwaru, jako jsou I/O zařízení, od návrhu a zavedení dalších komponent výpočetního systému, což uživatelům a výrobcům umožňuje velkou flexibilitu při implementaci výpočetních systémů . Hardwarová rozhraní mohou být paralelní s několika elektrickými připojeními přenášející části dat současně nebo sériová, kde jsou data odesílána po jednom bitu .

Softwarová rozhraní

Softwarové rozhraní může odkazovat na širokou škálu různých typů rozhraní na různých „úrovních“: operační systém může být propojen s hardwarem. Aplikace nebo programy běžící na operačním systému mohou vyžadovat interakci prostřednictvím datových toků , filtrů a kanálů; a v objektově orientovaných programech mohou objekty v aplikaci vyžadovat interakci prostřednictvím metod .

V praxi

Klíčovou zásadou návrhu je ve výchozím nastavení zakázat přístup ke všem zdrojům a povolit přístup pouze prostřednictvím přesně definovaných vstupních bodů, tj. Rozhraní. Softwarová rozhraní poskytují přístup k počítačovým prostředkům (jako je paměť, CPU, úložiště atd.) Základního počítačového systému; přímý přístup (tj. ne prostřednictvím dobře navržených rozhraní) k takovým zdrojům pomocí softwaru může mít zásadní důsledky-někdy katastrofální-pro funkčnost a stabilitu.

Rozhraní mezi softwarovými komponentami mohou poskytovat konstanty , datové typy , typy procedur , specifikace výjimek a podpisy metod . Někdy jsou veřejné proměnné definovány také jako součást rozhraní.

Rozhraní softwarového modulu A je záměrně definováno odděleně od implementace tohoto modulu. Ten obsahuje skutečný kód postupů a metod popsaných v rozhraní, stejně jako další „soukromé“ proměnné, postupy atd. Je k tomu nucen jiný softwarový modul B , například klient do A , který interaguje s A pouze prostřednictvím publikovaného rozhraní. Jednou praktickou výhodou tohoto uspořádání je, že nahrazení implementace A jinou implementací stejného rozhraní by nemělo způsobit selhání B - jak A interně splňuje požadavky rozhraní, není pro B relevantní , což se týká pouze specifikací rozhraní. (Viz také Liskovův substituční princip .)

V objektově orientovaných jazycích

V některých objektově orientovaných jazycích, zejména v jazycích bez úplné vícenásobné dědičnosti , se termín rozhraní používá k definování abstraktního typu, který neobsahuje žádná data, ale definuje chování jako podpisy metod . Třída má kód a data pro všechny metody odpovídající tomuto rozhraní a vyhlášení tak se říká, že implementovat toto rozhraní. Navíc i v jazycích s jednou dědičností lze implementovat více rozhraní, a proto mohou být současně různých typů.

Rozhraní je tedy definicí typu ; kdekoli lze objekt vyměňovat (například při volání funkce nebo metody ), typ objektu, který má být vyměněn, lze definovat spíše z hlediska jednoho z jeho implementovaných rozhraní nebo základních tříd, než specifikovat konkrétní třídu . Tento přístup znamená, že lze použít libovolnou třídu, která toto rozhraní implementuje. Například je možné použít fiktivní implementaci, která umožní vývoji postupovat dříve, než bude k dispozici finální implementace. V jiném případě může být během testování nahrazena falešná nebo falešná implementace. Takové implementace zakázaných inzerátů jsou později v procesu vývoje nahrazeny skutečným kódem.

Metoda definovaná v rozhraní obvykle neobsahuje žádný kód, a proto ji nelze sama volat; musí být implementován neabstraktním kódem, aby byl spuštěn při jeho vyvolání. Rozhraní s názvem „ Stack“ může definovat dvě metody: push()a pop(). Může být implementován například různými způsoby FastStacka GenericStack- první je rychlý, pracuje s datovou strukturou pevné velikosti a druhý pomocí datové struktury, jejíž velikost lze změnit, ale za cenu poněkud nižší rychlosti.

Ačkoli rozhraní mohou obsahovat mnoho metod, mohou obsahovat pouze jednu nebo dokonce žádnou. Například jazyk Java definuje rozhraní, Readablekteré má jedinou metodu; různé implementace se používají pro různé účely, včetně , , , , a . Rozhraní značek, jako například, neobsahují vůbec žádné metody a slouží k poskytování běhových informací generickému zpracování pomocí Reflection . read()BufferedReaderFileReaderInputStreamReaderPipedReaderStringReaderSerializable

Programování na rozhraní

Použití rozhraní umožňuje programovací styl zvaný programování do rozhraní . Myšlenkou tohoto přístupu je založit programovací logiku na rozhraních použitých objektů, nikoli na podrobnostech interní implementace. Programování na rozhraní snižuje závislost na specifikách implementace a činí kód více opakovaně použitelným.

Posunutí této myšlenky do extrému, inverze ovládání opouští kontext pro vložení kódu s konkrétními implementacemi rozhraní, které bude použito k provedení práce.

Uživatelská rozhraní

Uživatelské rozhraní je bod interakce mezi počítačem a člověka; zahrnuje jakýkoliv počet způsobů z interakce (jako je například grafiky, zvuku, polohy, pohybu, apod), u kterých dochází k převodu dat mezi uživatelem a počítačového systému.

Viz také

Reference