유형 터널 패턴
Type Tunnel pattern![]() |
컴퓨터 프로그래밍에서 유형 터널 패턴은 물리적으로 관련이 없는 유형의 그룹이 확장 가능한 적응 계층을 통해 터널링되고 전체적으로 조작을 위해 기본 계층에 통일된 형태로 제시될 수 있는 것이다.다음과 같이 구성된다.
- 이질적인 유형과 상호작용할 수 있는 클라이언트 코드에 사용되는 확장 가능한 일반 인터페이스 계층
- 터널 메커니즘, 즉 클라이언트 코드에 표현된 이기종 유형 사이를 다음에 의해 이해되는 유형으로 변환한다.
- 단일 콘크리트 타입을 조작하는 콘크리트 API 레이어
예
C++
심을 터널 메커니즘으로 사용하는 예
// 1. 인터페이스 레이어 템플릿 <타이프 이름 S> 공허하게 하다 foo(S s) { 술집을 내다(to_cstr_ptr(s)); } // 2. 터널 메커니즘:심 마를 뜨다 경시하다* to_cstr_ptr(인트로) { ... } 마를 뜨다 경시하다* to_cstr_ptr(마를 뜨다 경시하다*) { ... } 마를 뜨다 경시하다* to_cstr_ptr(찌꺼기::끈을 매다) { ... } // 3. 콘크리트 API 계층 공허하게 하다 술집을 내다(마를 뜨다 경시하다*) { ... } // 사용 인트로 본래의() { foo(123); foo("C 스트링"); foo(찌꺼기::끈을 매다("std::string")); }
참고 항목
참조
- Wilson, Matthew (August 2003), "Generalized String Manipulation: Access Shims and Type Tunneling", C/C++ Users Journal, 21 (8)
- Wilson, Matthew. "Breaking Up The Monolith: Advanced C++ Design without Compromise". Retrieved 11 March 2010.