SOLID 원칙
SOLID 원칙은 객체지향 설계의 다섯 가지 핵심 원칙으로, 견고하고 유지보수가 용이한 소프트웨어를 설계하는 데 목표를 두고 있다.
Single Responsibility Principle (단일 책임 원칙)
- 한 클래스는 하나의 책임만 가져야 한다.
- 클래스가 변경되는 이유는 하나여야 하며, 이는 클래스의 기능을 명확하게 구분짓는 데 도움을 준다.
Open/Closed Principle (개방-폐쇄 원칙)
- 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하지만 수정에는 닫혀 있어야 한다.
- 기존의 코드를 변경하지 않고도 시스템의 기능을 확장할 수 있어야 한다.
Liskov Substitution Principle (리스코프 치환 원칙)
- 서브(자식)타입은 기반(부모)타입으로 교체할 수 있어야 한다.
자식 클래스에서 base.sound()를 삭제하면 안된다. 부모말 잘 들어야한다.
Interface Segregation Principle (인터페이스 분리 원칙)
- SRP가 클래스 단일책임이라면, ISP는 인터페이스 단일책임
- Class : is - a
- Interface : has - a
Dependency Inversion Principle (의존 역전 원칙)
- 상위 모듈은 하위 모듈에 의존해서는 안된다, 둘 다 추상화에 의존해야 한다.
- 추상화는 구체적인 세부 사항에 의존하지 않아야 하며, 구체적인 사항은 추상화에 의존해야 한다.
- 즉, 특정 클래스가 다른 클래스의 세부 구현에 직접 의존하지 않고, 인터페이스나 추상 클래스에 의존하도록 만드는 것
public interface Pay {
String payment();
}
Pay의 공통적인 특징은 지불하는 것이다.
우선 공통부분을 추상화한 클래스를 만든다.
public class SamsungPay : Pay {
public String payment() {
return "samsung";
}
}
public class KakaoPay : Pay {
public String payment() {
return "kakao";
}
}
그럼 삼성페이든, 카카오페이든 Pay부분은 공통적으로 가지고 있고, 하위 클래스에서 구체적인 사항을 정할 수 있다.
반응형
'스파르타 게임개발종합반(Unity) > TIL - 본캠프 매일 공부 기록' 카테고리의 다른 글
2024.06.03 TIL - InputSystem Pass Through, Value 차이 (0) | 2024.06.03 |
---|---|
2024.05.31 TIL - Framework 특강 정리 (0) | 2024.05.31 |
2024.05.29 TIL - 디자인 패턴(상) 특강 정리 (2) | 2024.05.29 |
2024.05.28 TIL - 디버깅 특강 정리 (0) | 2024.05.28 |
2024.05.27 TIL - InputSytem, InvokeEvent, Phase, 데미지 Flash효과 - Coroutine, 낮과 밤 표현 - Directional Light, Gradient, AnimationCurve, AutoCollider(콜라이더 크기), Static 옵션 (0) | 2024.05.27 |
댓글