객체 지향 설계 5원칙 (SOILD 원칙)
SRP (Single Responsibility Principle)
- 모든 클래스는 각각 하나의 책임만 가져야한다. 클래스는 그 책임을 완전히 캡슐화해야함을 말한다.
(캡슐화 : 객체지향프로그래밍에서의 중요한 특징 중 하나로, 연관된 데이터와 함수를 논리적으로 묶어놓은 것이며,
데이터를 보호하기 위해 다른 객체의 접근을 제한하는 접근 제한 수식자의 기능을 제공한다.
OCP (Open Closed Principle)
- 확장에는 열려있고 수정에는 닫혀있는, 기존의 코드를 변경하지 않으면서(Closed),
기능을 추가할 수 있도록(Open) 설계까 되어야한다는 원칙을 말한다.
LSP (Liskov Substitution Principle)
- 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙이다.
즉, 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야한다.
(자식 클래스는 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행하도록 해야 LSP를 만족한다.)
ISP (Interface Segregation Principle)
- 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야한다.
하나의 일반적인 인터페이스보다 여러개의 구체적인 인터페이스가 낫다.
DIP (Dependency Inversion Principle)
- 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것,
거의 변화가 없는 것에 의존하라는 것이다.
한마디로 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺으라는 것이다.
'게임 개발 학습 > CS' 카테고리의 다른 글
[CS] Getter Setter (0) | 2023.09.25 |
---|---|
[CS] Pure Function (0) | 2023.09.25 |
[CS] OOP 스터디 (설계 5원칙과 Layer) (0) | 2023.09.25 |
[CS] 핵심 디자인 패턴 6가지 (0) | 2023.09.25 |