C# 지식 정리
SOLID 원칙에 대해 설명해주세요.
- SRP (단일책임의 원칙)
- 하나의 모듈이 하나의 책임을 가져야한다.
- 모듈이 변경되는 이유가 한가지여야 한다.
- 다른 액터나 여러 대상이 책임을 가지지 않고 하나의 액터에서만 책임을 져야한다.
- OCP (개방폐쇄의 원칙)
- 확장에 대해 열려있어야 한다. > 기능 확장
- 수정에 대해서 닫혀있어야 한다. > 동작을 추가하거나 변경
- LSP (리스코브 치환의 원칙)
- 하위 타입은 상위 타입을 대체할 수 있어야 한다.
- 객체를 사용하는 클라이언트는 상위 타입이 하위 타입으로 변경되어도 인식하지 못하여야 한다.
- ISP (인터페이스 분리의 원칙)
- 목적과 관심이 다른 클라이언트는 인터페이스를 통해 분리해야한다.
- 목적과 용도에 적합한 인터페이스만을 제공한다.
- DIP (의존성역전의 원칙)
- 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.
- 저수준 모듈은 반대로 고수준 모듈에 의존해야한다.
객체지향 프로그래밍의 속성 중 하나인 다형성과 이를 활용한 설계의 장점에 대해 설명해주세요.
- 다형성에는 override와 overload를 이용한 다형성이 존재합니다.
- override는 상속으로 코드의 재사용을 느린 방면, overload는 다른 데이터 타입을 사용하게 합니다.
- 다형성에서 다중 상속의 문제가 생기므로 인터페이스를 사용하여 문제를 해결 할 수 있습니다.
override와 overload에 대해 설명해주세요.
- override는 상속하는 메서드를 재정의를 할 때 사용을 하게 됩니다.
- overload는 같은 이름의 메서드 명에서 다른 매개변수로 사용될 때 사용하게 됩니다.
확장 메서드에 대해 설명하고 어떻게 활용했는지 알려주세요.
- 확장 메서드는 존재하는 메서드에 추가로 정의를 해주는 메서드이다.
- 코드의 재사용과 유지보수성을 위해 확장 메서드를 사용합니다.
- This를 이용하여 확장하여 사용을 합니다.