팀스파르타 내일배움캠프

C# 객체지향 및 이벤트 개념 심화 정리

creator2041 2025. 8. 4. 16:00

TIL: C# 객체지향 및 이벤트 개념 정리

1. SOLID 원칙

객체지향 설계의 5대 핵심 원칙으로, 유지보수성과 확장성을 극대화하기 위한 지침입니다.

  • S (SRP, 단일 책임 원칙): 클래스는 오직 하나의 책임만 가져야 하며, 변경 사유가 한 가지여야 합니다.
  • O (OCP, 개방/폐쇄 원칙): 기능 확장은 자유롭게 하되, 기존 코드는 수정하지 않도록 설계합니다.
  • L (LSP, 리스코프 치환 원칙): 자식 클래스는 부모 클래스의 기능을 완벽히 대체할 수 있어야 합니다.
  • I (ISP, 인터페이스 분리 원칙): 필요한 기능만 가진 작은 단위의 인터페이스로 나누어 설계합니다.
  • D (DIP, 의존 역전 원칙): 구체 클래스보다 추상화(인터페이스/추상 클래스)에 의존하도록 설계합니다.

2. 다형성과 장점

다형성은 동일한 인터페이스나 부모 클래스를 기반으로 다양한 구현체를 사용할 수 있는 성질입니다. 이를 통해 코드 재사용성, 유지보수성, 확장성이 크게 향상됩니다.

3. Override와 Overload

  • Override: 부모 클래스의 메서드를 자식 클래스에서 재정의하여 새로운 동작을 구현.
  • Overload: 같은 이름의 메서드를 매개변수 형태나 개수를 달리하여 여러 개 정의.

4. 확장 메서드

기존 클래스를 수정하거나 상속하지 않고, 새로운 메서드를 추가하는 기능입니다. static 클래스와 this 키워드를 사용하여 구현합니다.

5. 콜백

특정 이벤트나 작업이 완료된 후 실행되는 함수를 의미합니다. 보통 delegateAction을 통해 전달하고 호출합니다.

6. 델리게이트

메서드 참조를 저장하는 타입으로, 메서드를 변수처럼 전달할 수 있게 합니다.

7. Event

델리게이트를 기반으로 하는 구독/발행 구조입니다. 외부에서 직접 호출할 수 없도록 하여 안전성을 보장합니다.

8. Unity에서의 delegate/event 예시

UnityAction, UnityEvent, C# EventHandler 등이 있으며, 버튼 클릭 시 AddListener로 이벤트를 연결하는 방식이 대표적입니다.