아래 클래스 다이어그램이 위반하고 있는 SOLID 원칙은? | [경찰간부후보생 소프트웨어공학] 23년 1회차 기출문제 상세 페이지
1[경찰간부후보생 소프트웨어공학] 23년 1회차
아래 클래스 다이어그램이 위반하고 있는 SOLID 원칙은?

1
단일 책임의 원칙(Single Responsibility Principle)
2
개방 폐쇄의 원칙(Open Closed Principle)
3
리스코프 대체의 원칙(Liskov Substitution Principle)
4
의존성 역전의 원칙(Dependency Inversion Principle)
해설
이 다이어그램이 위반한 원칙은 리스코프 대체의 원칙이다.
상위 클래스 고용인은 지급명세서()를 정의하고, 하위 클래스 네 개가 이를 상속한다. 그런데 자원봉사자는 급여를 받지 않으므로 지급명세서()를 의미 있게 수행할 수 없다.
하위 타입은 상위 타입을 대신해도 프로그램이 올바르게 동작해야 한다. 고용인 자리에 자원봉사자를 넣으면 이 약속이 깨진다.
- 단일 책임의 원칙: 한 클래스가 여러 변경 이유를 갖는 문제로, 이 그림의 핵심 결함은 상속 관계의 대체 가능성이다.
- 개방 폐쇄의 원칙: 기존 코드를 수정하지 않고 확장할 수 있어야 한다는 원칙으로, 하위 클래스를 추가하는 구조 자체는 이를 따른다.
- 의존성 역전의 원칙: 상위 모듈이 구체 클래스가 아닌 추상에 의존해야 한다는 원칙으로, 이 그림의 문제와 관련이 없다.
오류나 개정된 내용이 보이면 알려주세요