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. 콜백
특정 이벤트나 작업이 완료된 후 실행되는 함수를 의미합니다. 보통 delegate나 Action을 통해 전달하고 호출합니다.
6. 델리게이트
메서드 참조를 저장하는 타입으로, 메서드를 변수처럼 전달할 수 있게 합니다.
7. Event
델리게이트를 기반으로 하는 구독/발행 구조입니다. 외부에서 직접 호출할 수 없도록 하여 안전성을 보장합니다.
8. Unity에서의 delegate/event 예시
UnityAction, UnityEvent, C# EventHandler 등이 있으며, 버튼 클릭 시 AddListener로 이벤트를 연결하는 방식이 대표적입니다.
'팀스파르타 내일배움캠프' 카테고리의 다른 글
| [기획 TIL] 2일차: 게임의 청사진, '게임 디자인 문서(GDD)' (4) | 2025.08.06 |
|---|---|
| [기획 TIL] 1일차: 매력적인 게임의 첫인상, 'One Pager' (4) | 2025.08.05 |
| Unity 대화 시스템 완전 구축 & 트러블슈팅 (1) | 2025.08.03 |
| 면접 복기 TIL (3) | 2025.08.02 |
| [TIL] 경험을 위한 기술, 기술을 위한 경험: 나의 개발 북극성을 찾아서 (3) | 2025.07.23 |