유형 터널 패턴

Type Tunnel pattern

컴퓨터 프로그래밍에서 유형 터널 패턴은 물리적으로 관련이 없는 유형의 그룹이 확장 가능한 적응 계층을 통해 터널링되고 전체적으로 조작을 위해 기본 계층에 통일된 형태로 제시될 수 있는 것이다.다음과 같이 구성된다.

  1. 이질적인 유형과 상호작용할 수 있는 클라이언트 코드에 사용되는 확장 가능한 일반 인터페이스 계층
  2. 터널 메커니즘, 즉 클라이언트 코드에 표현된 이기종 유형 사이를 다음에 의해 이해되는 유형으로 변환한다.
  3. 단일 콘크리트 타입을 조작하는 콘크리트 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.