SOLID

Gunjoo Ahn·2022년 8월 20일
0
약자원칙설명
S단일 책임 원칙 (SRP, Single responsibility principle)한 클래스는 하나의 책임만 가져야 한다.
O개방-폐쇄 원칙 (OCP, Open/closed principle)소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
L리스코프 치환 원칙 (LSP, Liskov substitution principle)프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
I인터페이스 분리 원칙 (ISP, Interface segregation principle)특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
D의존관계 역전 원칙 (DIP, Dependency inversion principle)프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다. 의존성 주입은 이 원칙을 따르는 방법 중 하나이다.

LSP의 설명이 난해하여, 추가로 설명하자면 상속받아서 구현을 했을 때, 메소드명으로 추측할 수 있는 동작을 해야한다는 것이다. 추측할 수 없는, 약속되지 않은 동작을 한다면, 상위 타입으로 치환이 안되는 것은 당연하다.

자동차 클래스를 상속받아 break() 메소드를 구현했는데, 속도가 증가하면 안된다는 것이다. 기존 자동차 클래스가 있는 코드에 오히려 속도가 증가해버리는 break() 메소드를 가진 하위 타입의 클래스를 넣으면 정상 동작하지 않을 것은 명백하다.

Reference

SOLID Wikipedia KR

profile
Backend Developer

0개의 댓글