Why interfaces are important
- 객체 지향 프로그래밍(OOP)에서 클래스(예: 플레이어, 파괴 가능한 객체)는 공통적인 변수와 메서드(예: 체력, 데미지)를 가질 수 있습니다. 🧱
- 정적 타입 언어(C#, Java)에서 여러 클래스가 공유하는 기능을 직접 참조하면 코드의 유연성이 떨어지고 의존성이 복잡해집니다. 🔗
- 인터페이스는 특정 기능을 수행하기 위한 '계약'을 정의하며, 변수나 구체적인 구현 로직을 포함하지 않습니다. 📜
- 클래스는 인터페이스를 '구현(implements)'함으로써 해당 인터페이스가 요구하는 모든 메서드를 반드시 포함하도록 보장합니다. ✅
- 이를 통해 무기 클래스 같은 상위 로직은 특정 클래스(예: 플레이어, 상자) 대신 '데미지를 입을 수 있는' 인터페이스에만 의존하여 다형성을 활용합니다. 🎭
- 결과적으로 코드는 훨씬 유연하고 재사용 가능하며 유지보수가 용이해집니다. 🛠️
- 게임 개발(Unity C#)에서
IDamageable 인터페이스를 사용하면 어떤 게임 오브젝트든 데미지를 입을 수 있는 대상으로 쉽게 만들 수 있습니다. 🎮
- 인터페이스는 동적 타입 언어(JavaScript)의 유연성을 정적 타입 환경에서 안전하게 구현하는 방법입니다. 💻
- 인터페이스 메서드의 반복적인 구현을 줄이기 위해 디자인 패턴(예: 생성자 주입을 통한 공유 로직 주입)을 활용할 수 있습니다. 🧩