Typ Vzor tunelu - Type Tunnel pattern
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
v programování, a Typ Tunel vzor je místo, kde může být skupina fyzicky nesouvisejících typů tunelována prostřednictvím rozšiřitelné adaptační vrstvy a prezentována v unifikované formě podkladové vrstvě pro manipulaci jako celek. Skládá se z následujícího:
- obecný, rozšiřitelný rozhraní vrstva použitá v klientském kódu, která může interagovat s heterogenními typy, a
- mechanismus tunelu, který překládá mezi heterogenními typy vyjádřenými v klientském kódu do typ rozumí
- beton API vrstva, která manipuluje s jedním konkrétním typem.
Tunelový mechanismus zahrnuje Podložky a konverze konstruktéři.
Příklady
C ++
Příklad, který používá podložky jako mechanismus tunelu.
// 1. Vrstva rozhraníšablona <typename S> prázdnota foo(S s) { bar(to_cstr_ptr(s)); }// 2. Mechanismus tunelu: Podložkachar konst* to_cstr_ptr(int) { ... }char konst* to_cstr_ptr(char konst*) { ... }char konst* to_cstr_ptr(std::tětiva) { ... }// 3. Betonová vrstva APIprázdnota bar(char konst*) { ... }// Využitíint hlavní() { foo(123); foo("řetězec C"); foo(std::tětiva("a std :: string")); }
Viz také
Reference
- Wilson, Matthew (srpen 2003), "Zobecněná manipulace s řetězci: Přístup k podložkám a tunelování typů", Deník uživatelů C / C ++, 21 (8)
- Wilson, Matthew. „Breaking The Monolith: Advanced C ++ Design without Compromise“. Citováno 11. března 2010.
![]() | Tento softwarové inženýrství související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |