[ ps ]
[ 백준 / C++ ] 1743 : 음식물 피하기 (tistory.com)
[ Unity ]
객체 지향 프로그래밍(ex. C#)을 할 때 되도록이면 SOLID 원칙을 지키는 것이 중요하다.
이를 지키려고 코드를 리팩토링하다보면 유지 보수성 및 확장성을 높이는 데 도움이 된다.
1. Single Responsibility Principle ( 단일책임원칙 )
한 클래스는 하나의 책임만 가져야 한다.
예를 들어 사각형 클래스에 면적 및 둘레를 계산하는 메서드가 각각 있다고 하자.
면적 메서드에 오류가 있다면 둘레 메서드와 관계 없이 결국 사각형 클래스를 수정해야 하고,
이는 SRP를 따르지 않는다.
2. Open Closed Principle ( 개방폐쇄원칙 )
확장에는 열려있고, 수정에는 닫혀 있어야 한다.
3. Liskov Substitution Principle ( 리스코프 치환원칙 )
서브(자식)타입은 기반(부모)타입으로 교체할 수 있어야 한다.
OCP를 지키려면 부모 클래스를 상속받아 수정 없이 확장만 하면 된다.
이렇게 되면 자식 클래스와 부모 클래스가 호환이 되며( 수정 사항이 없음 ), 이는 LSP를 따른게 된다.
OCP와 LSP는 필요충분이다.
4. Interface Segregation Principle ( 인터페이스 분리 원칙 )
SRP가 클래스 단일책임이라면, ISP는 인터페이스 단일책임이다.
위의 SRP 예시에서 인터페이스를 사용하지 않는다면, 클래스를 2개로 나누어야 한다.
각 메서드의 기능을 인터페이스로 명시한다면 클래스를 나눌 필요가 없고, ISP 를 따르게 된다.
5. Dependency Inversion Principle ( 의존 역전 원칙 )
Class를 참조할 때, 직접 참조하지 말고 상위(부모) 요소를 참조해라.
DIP를 지키기 위해서는 추상화를 활용하면 된다.
'TIL' 카테고리의 다른 글
[ 24.05.27 ] 내일배움캠프 29일차 TIL - 카메라 회전 (0) | 2024.05.28 |
---|---|
[ 24.05.24 ] 내일배움캠프 28일차 TIL - SkyBox, RayCast (0) | 2024.05.24 |
[ 24.05.22 ] 내일배움캠프 26일차 TIL - event system (0) | 2024.05.22 |
[ 24.05.20 ] 내일배움캠프 24일차 TIL - Input Rebinding (0) | 2024.05.20 |
[ 24.05.13 ] 내일배움캠프 20일차 TIL - 더블탭, SO, [Serializable] (0) | 2024.05.13 |