반응형
인터페이스란
클래스나 구조체가 특정 기능을 구현하도록 강제하는 Contract 역할을 하는 것이다.
그럼 이제 본격적으로 인터페이스의 특징과 사용 예제들을 확인해보자
인터페이스의 특징
- 구현 강제: 인터페이스를 구현하는 클래스는 인터페이스에서 정의한 모든 멤버를 구현해야 한다.
- 다중 상속 허용: 클래스는 여러 인터페이스를 구현할 수 있다. (클래스는 하나만 상속이 가능)
- 다형성 지원: 인터페이스를 통해 객체의 구체적인 타입을 몰라도 해당 객체를 다룰 수 있다.
인터페이스 예제
그럼 예제 코드를 보면서 이해를 해보자
아래 인터페이스는 객체가 파괴가 되었을 때 일관되게 처리하기 위해 인터페이스를 활용했다.
public interface IDestructible
{
public void Destruct();
}
IDestructible 인터페이스를 상속받은 BikeController 클래스에서
Bike가 데미지를 받아 0 이하가 되어 파괴될 때 처리하고자 IDestructible 를 상속받아
if (BikeShield)
if (BikeShield.TakeDamage(Mathf.RoundToInt(amount)) <= 0)
Destruct();
이와 같이 사용을 했다.
public class BikeController : Subject, IBikeElement, IDamageable, IDestructible
{
...
public void TakeDamage(float amount, DamageType type) // TODO: Implement a damage state class and encapsulate the following code:
{
...
if (BikeShield)
if (BikeShield.TakeDamage(Mathf.RoundToInt(amount)) <= 0)
Destruct();
Notify();
}
public void Destruct()
{
// TODO: Add destruct state
}
}
이렇게 함으로써 추후 파괴 로직을 각 클래스 마다 다르게 정의하여 코드의 유연성과 확장성을 높힐 수 있다!
반응형
'C# 프로그래밍 > 기초 문법' 카테고리의 다른 글
[c#] 디자인 패턴 - MVC 패턴 (1) | 2024.07.23 |
---|---|
[c#] 디자인 패턴 - 옵저버 패턴 (0) | 2024.07.14 |
[코딩테스트] c# 달리기 경주 (0) | 2023.07.20 |
c# 프로그래밍 - 구조체(truct) (0) | 2022.12.06 |
c# 프로그래밍 - 클래스(Class) (0) | 2022.12.06 |