Life Archive

객체 지향 설계 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)


- 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 

거의 변화가 없는 것에 의존하라는 것이다.

한마디로 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺으라는 것이다.

 


출처 : https://hckcksrl.medium.com/solid-%EC%9B%90%EC%B9%99-182f04d0d2b#:~:text=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%20%EC%84%A4%EA%B3%845%EB%8C%80,%EB%94%B0%EC%84%9C%20SOILD%20%EC%9B%90%EC%B9%99%EC%9D%B4%EB%9D%BC%EA%B3%A0%20%EB%B6%80%EB%A5%B8%EB%8B%A4

'게임 개발 학습 > 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