Típusalagút

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen InternetArchiveBot (vitalap | szerkesztései) 2019. szeptember 17., 19:01-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (1 forrás archiválása és 0 megjelölése halott linkként.) #IABot (v2.0)

A számítógép-programozásban a típusalagút programtervezési minta lehetővé teszi, hogy egymással kapcsolatban nem álló típusokat együtt lehessen kezelni. Ezt egy kiterjeszthető adaptációs réteggel valósítja meg, ami egységes formában áll a kliensek rendelkezésére. A következőket tartalmazza:

  • Általános, kiterjeszthető interfész, ami különböző típusokat tud kezelni. A kliensek ezt az interfészt ismerik.
  • Alagút mechanizmus, ami közvetít a különféle típusok és az API által használt egységes típus között
  • Belső API, ami az egyetlen belső típust használja.

Ilyen alagút a Shim és a különböző konverziós konstruktorok.

Példa

A következő példa C++-ban íródott, és Shimet használ.

// 1. Interface layer
template <typename S> 
void foo(S s) 
{    
    bar(to_cstr_ptr(s)); 
}

// 2. Tunnel mechanism: Shim
char const* to_cstr_ptr(int) { ... }
char const* to_cstr_ptr(char const*) { ... }
char const* to_cstr_ptr(std::string) { ... }

// 3. Concrete API layer
void bar(char const*) { ... }

// Usage
int main() 
{
    foo(123); 
    foo("a C string"); 
    foo(std::string("a std::string")); 
}

Források

Fordítás

Ez a szócikk részben vagy egészben a Type Tunnel pattern című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.