공용 인터페이스

Public interface

컴퓨터 과학에서, 공공 인터페이스는 독립 소프트웨어 실체가 상호작용하는 논리적 지점이다.기업들은 단일 컴퓨터 내에서, 네트워크를 통해, 또는 다양한 다른 토폴로지를 통해 상호작용을 할 수 있다.

상호작용이 계속되기 위해서는 공공 인터페이스가 안정적이고 미래의 변화, 개선 및 절약을 지원하도록 설계되는 것이 중요하다.


디자인

안내

프로젝트는 프로젝트의 준수를 평가하는 데 사용할 수 있는 계획과 절차를 설명하는 추가 문서를 제공해야 한다.

  • 건축 설계 문서
  • 코딩 표준 문서.
  • 소프트웨어 릴리스 계획 문서.
  • 구식 인터페이스를 더 이상 사용하지 않는 계획을 문서화하십시오.

프로그래머는 완전히 절연된 클래스를 만들고 공개 인터페이스를 컴파일 시간 의존성으로부터 격리시켜야 한다.

모범 사례

  • 사용자에게 완전하고 일관성 있는 개념 집합을 제시하십시오.
  • 정적으로 입력할 인터페이스를 설계하십시오.
  • 다른 인터페이스에 대한 인터페이스 종속성 최소화
  • 인터페이스는 애플리케이션 레벨 유형으로 표현하십시오.
  • 개발 및 통합을 지원하기 위해 주장만 사용하십시오.

C++ 인터페이스

프로토콜 클래스를 사용하여 공용 인터페이스를 정의하십시오.
프로토콜 클래스의 특성은 다음과 같다.
  • 그것은 회원 데이터, 비 가상 기능 또는 어떤 종류의 개인(또는 보호되는) 멤버를 포함하는 클래스를 포함하거나 상속하지 않는다.
  • 빈 구현으로 정의된 비인라인 가상 파괴자를 가지고 있다.
  • 소멸자 이외의 모든 멤버 함수는 상속된 함수를 포함하여 순수 가상으로 선언되고 정의되지 않은 상태로 남는다.
혜택들
프로토콜 클래스를 사용할 경우의 이점은 다음과 같다.
  • 외부 클라이언트에서 응용 프로그램 절연
  • 인터페이스 내부 변경 사항 절연
  • 공용 인터페이스의 변경에서 인터페이스의 구현까지의 변경사항 단열
  • 단열재에는 비용이 들지만, 상호운용성과 재사용성의 이득이 더 큰 비중을 차지하는 경향이 있다.
비용:
  • 구현 포인터 살펴보기
  • 액세스당 한 수준의 양방향 추가
  • 메모리 요구 사항에 개체당 구현 포인터 크기 추가

다른 정보

리팩터링과 같은 다양한 방법론은 인터페이스의 결정을 지원한다.리팩토링은 일반적으로 전체 소프트웨어 구현에 적용되지만, 인터페이스를 적절히 플러싱하는 데 특히 도움이 된다.패턴 커뮤니티를 통해 정의된 다른 접근법이 있다.[1].