공부, 기록

객체지향의 5원칙 본문

공부/소소한 개발

객체지향의 5원칙

무는빼주세요 2021. 10. 4. 18:23

객체지향의 5 원칙
SOLID

단일 책임 원칙 (Single responsibility principle)
모든 클랙스는 하나의 책임만을 가지며 그 책임을 완전히 캡슐화 해야 한다는 의미
이를 통하여 클래스간의 응집도를 높이고 결합도는 낮추어 안정성을 높일 수 있다.

개방-폐쇄 원칙 (Open/closed principle)
개체는 확정에 대해 열려 있어야 하고 수정에 대해서는 닫혀 있어야 한다는 의미로
객체 기능의 확장은 허용하되 스스로의 변경은 피해야한다.
기능을 추가하거나 변경할 때 이미 제대로 동작하고 있는 코드를 변경하지 않아도 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능해진다.

리스코프 치환 원칙 (Liskov substitution principle)
자식 클래스는 부모 클래스를 대체할 수 있다는 원칙으로 부모 클래스의 자리에 자식 클래스를 넣었을 때 계획대로 잘 수행되어야 한다는 의미. 

인터페이스 분리 원칙 (Interface segregation principle)
자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙으로 큰 덩어리의 인터페이스들을 구체적으로 작은 단위들로 분리시켜 클라이언트에서 꼭 필요한 메서드만 이용할 수 있게 해야 한다. 인터페이스의 단일 책임 원칙이라고도 할 수 있다. 이를 통해 시스템의 내부 의존성을 약화시켜서 리팩토링, 수정 등을 원할하게 할 수 있다.

의존관계 역전 원칙 (Dependency inversion principle)
상위 계층이 하위 계층에 의존하는 방식이 아닌 상위 계층이 하위 계층의 구현으로부터 독립되게 하는 원칙.  중요 내용으로는 
i. 상위 모듈은 하위 모듈에 의존해서는 안된다 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.
ii. 추상화는 세부 사항에 의존해서는 안된다 세부 사항이 추상화에 의존 해야 한다.

참조
https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%9B%90%EC%B9%99

https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84)

'공부 > 소소한 개발' 카테고리의 다른 글

CORS  (0) 2021.12.04
흐름제어 오류제어 혼잡제어  (0) 2021.11.21
Java Object class, equals, Hash Code  (0) 2021.09.19
Servlet, Filter, Interceptor, AOP  (0) 2021.09.12
Spring Web MVC  (0) 2021.09.12