래퍼 기능

Wrapper function

래퍼 함수는 소프트웨어 라이브러리 또는 컴퓨터 프로그램에서 서브루틴(함수의 다른 단어)으로, 그 주된 목적은 추가 연산이 거의 또는 전혀 없는[1] 두 번째 서브루틴 또는 시스템 호출이다.래퍼 함수는 서브루틴의 기본 구현 세부사항을 추상화함으로써 컴퓨터 프로그램을 더 쉽게 쓸 수 있도록 하기 위해 사용됩니다.

목적

래퍼 함수는 위임 수단이며 다양한 용도로 사용할 수 있습니다.

프로그래밍의 편리성

래퍼 기능을 사용하여 컴퓨터 프로그램을 쉽게 작성할 수 있습니다.그 예로는MouseAdapterJava AWT [2]라이브러리의 유사한 클래스.래퍼 기능은 타사 라이브러리 기능을 사용하는 응용 프로그램 개발에 유용합니다.래퍼는 서드파티 기능별로 작성되어 네이티브 어플리케이션에서 사용할 수 있습니다.서드파티 기능이 변경 또는 갱신된 경우 네이티브애플리케이션의 서드파티 기능의 모든 인스턴스를 변경하는 것이 아니라 네이티브애플리케이션의 래퍼만 변경할 필요가 있습니다.

클래스/오브젝트인터페이스적응

래퍼 함수를 사용하여 기존 클래스 또는 개체를 다른 인터페이스를 갖도록 조정할 수 있습니다.이는 기존 라이브러리 코드를 사용할 때 특히 유용합니다.

코드 테스트

래퍼 함수는 [3]함수에 대한 호출마다 동일한 에러 체크를 반복함으로써 코드의 길이를 크게 늘리지 않고 기존 시스템 함수에 대한 에러 체크 루틴을 작성하기 위해 사용할 수 있다.원래 함수에 대한 모든 호출은 래퍼에 대한 호출로 대체될 수 있으므로 프로그래머는 래퍼가 작성되면 오류 체크를 잊어버릴 수 있습니다.테스트 드라이버는 가능한 각 경로를 엄격하게 추구하기 위해 다른 설정 또는 매개 변수를 사용하여 코드 모듈을 반복 호출하는 일종의 래퍼 기능입니다.이것은 전달 가능한 코드는 아니지만 일회용 코드도 아니며, 일반적으로 회귀 테스트에 사용하기 위해 보관됩니다.인터페이스 어댑터는 인터페이스를 코드 모듈로 단순화, 맞춤 또는 증폭하는 래퍼 기능의 일종으로 사용자에게 보다 알기 쉽거나 관련성을 높이기 위해 사용됩니다.매개 변수 이름 변경, 매개 변수 결합, 매개 변수 기본값 설정 등을 수행할 수 있습니다.

다중 상속

기본 클래스의 다중 상속을 지원하지 않는 프로그래밍 언어에서는 래퍼 함수를 사용하여 이를 시뮬레이션할 수 있습니다.다음은 LinkedList 및 HashSet에서 "이어받는" Java 클래스의 일부 예입니다.실장의 상세한 것에 대하여는, 「Method

일반의 학급 시험 용구 링크 리스트, 해시 세트{  @오버라이드 //데이터 멤버 및 데이터 메서드 삭제 //중요한 반환  } 

라이브러리 기능 및 시스템 호출

C 표준 라이브러리의 기능 등 많은 라이브러리 함수시스템콜의 추상화를 위한 인터페이스로서 기능합니다.glibc의 fork 및 execve 함수가 그 예입니다.이들은 각각 하위 포크 실행 시스템콜을 호출합니다.

이로 인해 시스템콜과 시스템콜이라는 용어가 [4][5]랩되어 있는 유사한 이름의 시스템콜이 아닌 상위 레벨의 라이브러리 콜을 나타내는 데 잘못 사용될 수 있습니다.

도우미 기능

도우미 함수는 설명적인 이름을 할당하고 [6]계산의 재사용을 허용함으로써 계산의 일부를 그룹화하는 함수입니다.모든 래퍼가 도우미 기능은 아니지만 모든 도우미 기능은 래퍼입니다.또, 다이나믹 바이너리 변환에서는, 특정아키텍쳐(architecture)의 도우미 기능이, 어느 명령 세트명령어로의 [7]변환에 사용됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Reselman, Bob; Peasley, Richard; Pruchniak, Wayne (1998). Using Visual Basic 6. Que. p. 446. ISBN 9780789716330.
  2. ^ Java 튜토리얼
  3. ^ Stevens, Richard; Fenner, Bill; Rudoff; Andrew M. (2003). UNIX Network Programming. Addison-Wesley. pp. 5–6, 29. ISBN 9780131411555.
  4. ^ "syscalls(2) - Linux manual page". man7.org. Retrieved 2020-04-25.
  5. ^ "System Calls (The GNU C Library)". www.gnu.org. Retrieved 2020-04-25.
  6. ^ Fisler, Kathi (2005). "CS 1101: Helper functions". Worcester Polytechnic Institute. Archived from the original on 7 May 2021. Retrieved 17 November 2021.
  7. ^ Wang, Wenwen (3 March 2021). Helper function inlining in dynamic binary translation. CC: Compiler Construction. New York, United States: Association for Computing Machinery. p. 107. doi:10.1145/3446804.3446851. ISBN 978-1-4503-8325-7.