[java] 인터페이스를 정의할 때 고려해야 할 사항은?
  1. 목적과 사용 이점:
    • 인터페이스는 클래스가 특정 행동을 지원하도록 강제함으로써 다형성을 제공합니다. 클래스 간의 결합도를 낮추어 유연하고 확장 가능한 설계를 할 수 있습니다.
    • 인터페이스를 통해 다중 상속을 흉내내는 것이 가능하며, 자바 8부터는 default 메서드를 사용하여 인터페이스에 메서드 구현을 포함시킬 수 있습니다.
  2. 네이밍 규칙:
    • 인터페이스의 이름은 해당 인터페이스가 제공하는 기능이나 역할을 잘 설명하도록 작성해야 합니다.
    • 일반적으로, 인터페이스 이름 앞에는 “I”를 붙이는 관례가 있지만, 이는 필수는 아닙니다.
  3. 단일 책임 원칙:
    • 인터페이스는 하나의 구체적인 역할에만 집중해야 합니다. 단일 책임 원칙을 지켜야 다양한 클래스에서 재사용이 가능합니다.
  4. 버전 관리:
    • API 안정성을 위해, 인터페이스를 변경하는 것은 신중하게 고려해야 합니다. 이미 구현된 클래스들과의 호환성을 유지하기 위해 업데이트할 때는 염두에 두어야 합니다.

인터페이스를 설계할 때 이러한 사항들을 고려하여야 합니다. 관련해서 자세한 내용은 아래 레퍼런스를 참고하세요.

레퍼런스: