객체지향 프로그래밍 특징에 추상화, 캡슐화, 상속성, 다형성 4가지와 함께 5가지 설계원칙도 존재한다.
자신 클래스 안의 응집도는 내부적으로 높이고 타 클래스 간 결합도는 낮추는 것을 목적으로 합니다.
SOLID
Single Responsibility Principle - 단일 책임 원칙
Single Responsibility Principle 은 모든 클래스는 각각 하나의 책임만 가져야 하는 원칙입니다.
A라는 로직이 존재한다면 어떠한 클래스는 A에 관한 클래스여야하고 이를 수정한다고 했을 때도 A에 관련된 수정이어 합니다.
Open Closed Principle - 개방페쇄 원칙
소프트웨어 개체는 확장에 대해 열려이써야하고, 수정에 대해서는 닫혀있어야합니다.
유지보수 사항이 생긴다면 코드를 쉽게 확장할 수 있또록 하고 수정할 때는 닫혀있어야 하는 원칙입니다.
기존의 코드는 되도록 변경하지 않으면서도 확장은 쉽게 할 수 있어야 합니다.
Liskov Substitution Principle - 리스코프 치환 원칙
상위 타입 객체를 하위 타입의 객체로 치환해도 상위타입을 사용하는 프로그램은 정상적으로 동작해야한다.
프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 하는 것을 의미합니다.
Interface Segregation Prinple - 인터페이스 분리원칙
하나의 일반적인 인터페이스보다 구체적인 여러 개의 인터페이스를 만들어야 하는 원칙을 말합니다.
객체는 자신이 호출하지 않는 메소드에 의존하지 않아야한다는 원칙이다. 즉, 객체는 자신이 사용하는 메소드에만 의존해야한다.
인터페이스는 지나치게 광범위하거나 지나치게 많은 기능을 구현해서는 안되고 그 인터페이스를 사용하는 객체를 기준으로 분리되어야한다.
의존 역전 원칙
변하기 쉬운 것 자주 변화하는 것에 의존하기보다 변화하기 어려운 것에 의존해야 한다. 저수준 모듈, 고수준 모듈 모드 추상화에 의존해야한다.
Q.
객체지향 설계원칙에 대해서 말해보세요
A.
객체지향 프로그래밍을 설계할 때에는 SOLID 원칙을 지켜주어야합니다.
S는 단일책임원칙 O는 개방-폐쇄원칙 L은 리스코프 치환 원칙 I는 인터페이스 분리 원칙 D는 의존역전 원칙을 의미합니다.
이 중에서 대표적으로 단일책임원칙에 대해서 말씀드리자면 모든 클래스는 각각 하나의 책임만 가져야하는 원칙입니다.
'IT정보 > 북마크털기 📚' 카테고리의 다른 글
[Spring] Spring Data JPA란? (0) | 2022.10.14 |
---|---|
[WEB] JWT 토큰 인증이란? (0) | 2022.10.12 |
[WEB] 인증방식 / Cookie / Session / Token (0) | 2022.10.10 |
[Java] 오버로딩 오버라이딩 차이 (0) | 2022.09.22 |
[북털] Spring VS Spring Boot (0) | 2022.08.23 |