공용 인터페이스
Public interface컴퓨터 과학에서, 공공 인터페이스는 독립 소프트웨어 실체가 상호작용하는 논리적 지점이다.기업들은 단일 컴퓨터 내에서, 네트워크를 통해, 또는 다양한 다른 토폴로지를 통해 상호작용을 할 수 있다.
상호작용이 계속되기 위해서는 공공 인터페이스가 안정적이고 미래의 변화, 개선 및 절약을 지원하도록 설계되는 것이 중요하다.
디자인
![]() |
안내
프로젝트는 프로젝트의 준수를 평가하는 데 사용할 수 있는 계획과 절차를 설명하는 추가 문서를 제공해야 한다.
프로그래머는 완전히 절연된 클래스를 만들고 공개 인터페이스를 컴파일 시간 의존성으로부터 격리시켜야 한다.
모범 사례
- 사용자에게 완전하고 일관성 있는 개념 집합을 제시하십시오.
- 정적으로 입력할 인터페이스를 설계하십시오.
- 다른 인터페이스에 대한 인터페이스 종속성 최소화
- 인터페이스는 애플리케이션 레벨 유형으로 표현하십시오.
- 개발 및 통합을 지원하기 위해 주장만 사용하십시오.
예
C++ 인터페이스
- 프로토콜 클래스를 사용하여 공용 인터페이스를 정의하십시오.
- 프로토콜 클래스의 특성은 다음과 같다.
- 그것은 회원 데이터, 비 가상 기능 또는 어떤 종류의 개인(또는 보호되는) 멤버를 포함하는 클래스를 포함하거나 상속하지 않는다.
- 빈 구현으로 정의된 비인라인 가상 파괴자를 가지고 있다.
- 소멸자 이외의 모든 멤버 함수는 상속된 함수를 포함하여 순수 가상으로 선언되고 정의되지 않은 상태로 남는다.
- 혜택들
- 프로토콜 클래스를 사용할 경우의 이점은 다음과 같다.
- 외부 클라이언트에서 응용 프로그램 절연
- 인터페이스 내부 변경 사항 절연
- 공용 인터페이스의 변경에서 인터페이스의 구현까지의 변경사항 단열
- 단열재에는 비용이 들지만, 상호운용성과 재사용성의 이득이 더 큰 비중을 차지하는 경향이 있다.
- 비용:
- 구현 포인터 살펴보기
- 액세스당 한 수준의 양방향 추가
- 메모리 요구 사항에 개체당 구현 포인터 크기 추가
다른 정보
리팩터링과 같은 다양한 방법론은 인터페이스의 결정을 지원한다.리팩토링은 일반적으로 전체 소프트웨어 구현에 적용되지만, 인터페이스를 적절히 플러싱하는 데 특히 도움이 된다.패턴 커뮤니티를 통해 정의된 다른 접근법이 있다.[1].