Abstrakce vrstva (programování)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 26. února 2020; kontroly vyžadují 3 úpravy .

Abstraktní vrstva  je jedním ze způsobů, jak skrýt detaily implementace konkrétní sady funkcí. Slouží ke kontrole složitosti navrženého systému během dekompozice , kdy je systém reprezentován jako hierarchie úrovní abstrakce.

Příklady

Příklady softwarových modelů, které používají abstraktní vrstvy, zahrnují sedmivrstvý model OSI pro komunikační protokoly počítačové sítě , grafickou primitivní knihovnu OpenGL , model Unix byte stream I/O používaný v MS DOS , Linuxu a mnoha dalších moderních operačních systémech. .

V operačním systému Unix se s většinou typů I/O operací zachází jako s proudy bajtů čtených nebo zapsaných do zařízení . Tento model bajtového toku se používá pro I/O souboru , soketu a počítačového terminálu k zajištění nezávislosti I/O na zařízení. Pro čtení a zápis do zařízení na úrovni aplikace volá program funkci otevření zařízení, která může odpovídat skutečnému zařízení, jako je terminál, nebo virtuální zařízení , jako je síťový port nebo soubor v systému souborů . . Fyzické vlastnosti zařízení jsou předány operačnímu systému, který zase poskytuje abstraktní rozhraní , které umožňuje programátorovi číst a zapisovat bajty do zařízení. Operační systém pak provede akce nezbytné pro práci s konkrétním zařízením.

Většina grafických knihoven , jako je OpenGL, poskytuje abstraktní grafický model jako rozhraní. Knihovna je zodpovědná za převod programových příkazů do speciálních příkazů zařízení nezbytných pro kreslení grafických prvků a objektů. Příkazy specifické pro plotr se liší od příkazů monitoru , ale grafická knihovna skrývá detaily implementace specifické pro zařízení tím, že poskytuje abstraktní rozhraní obsahující sadu primitiv běžně používaných pro kreslení grafických objektů.

V doménově orientovaném designu může rozsáhlá struktura (předmětová oblast) používat vzor vrstev odpovědnosti .  Doménový model lze například rozdělit na úrovně (shora dolů) „Podpora rozhodování“, „Operace“ a „Produkční schopnosti“, ve kterých entity vyšší úrovně spoléhají na entity nižší úrovně, ale nižší úroveň nikoli. závisí na horním [1] .

Slavný aforismus Davida Wheelera říká: Všechny problémy v informatice lze vyřešit na jiné úrovni kruhovým objezdem ; [2] toto je často chybně citováno s „objížďkou“ nahrazenou „abstrakce“. Pokračování od Kevlin Henney zní "... kromě problémů s velkou mírou nepřímosti."

Hierarchie úrovní

Úrovně abstrakce jsou často organizovány do hierarchie úrovní abstrakce. Model sítě OSI obsahuje sedm úrovní abstrakce. Každá vrstva modelu ISO OSI zohledňuje samostatnou část požadavků na komunikaci, čímž se snižuje složitost souvisejících technických rozhodnutí.

Děravé abstrakce

V ideálním případě abstrakce zcela odstíní horní vrstvu od implementačních detailů spodní vrstvy. Přesto je ve více či méně složitých případech téměř nemožné dosáhnout ideálu, který Joel Spolsky vyjádřil v podobě zákona děravých abstrakcí[3] [4] :

Všechny netriviální abstrakce jsou plné děr.

Architektura počítače

Z hlediska architektury počítače je systém často reprezentován jako model pěti úrovní abstrakce: počítačový hardware (viz vrstva abstrakce hardwaru ), firmware , jazyk symbolických instrukcí , jádro operačního systému a aplikace . [5]

Poznámky

  1. Evans E. Responsibility Layers // Domain-Driven Design - Řešení složitosti v srdci softwaru. - Addison-Wesley, 2003. - ISBN 978-0-321-12521-7 .
  2. Diomidis Spinellis. Další úroveň nepřímosti Archivováno 26. října 2011 na Wayback Machine . V Andy Oram a Greg Wilson, editoři, Beautiful Code: Leading Programmers Explain How They Think , kapitola 17, strany 279-291. O'Reilly and Associates, Sebastopol, CA, 2007.
  3. Spolsky, Joel Zákon děravých abstrakcí (2002). Datum přístupu: 22. září 2010. Archivováno z originálu 20. listopadu 2016.
  4. Spolsky, Joel Zákon děravých abstrakcí (odkaz nepřístupný) . Získáno 15. září 2014. Archivováno z originálu 28. září 2014. 
  5. Andrew S. Tanenbaum . Organizace strukturovaného počítače  (neopr.) . — Englewood Cliffs, New Jersey: Prentice-Hall , 1979. - ISBN 0-13-148521-0 .

Odkazy