본문 바로가기
JAVA

[JAVA] 객체지향 특징 및 Solid 원칙 정리!!

by GoodDayDeveloper 2021. 12. 8.
반응형

 

안녕하세요.

오늘은 자바의 객체 지향의 특징과 더불어 좋은 객체 지향 설계를 위한 5가지 원칙인 solid에 대해 정리해보겠습니다.

 

 

 

객체 지향의 특징 :

 

추상화 : 실제 세상을 객체화하는게 아니라 필요한 정보만을 중심으로 간소화하는 것을 의미합니다.

캡슐화 : 객체에 필요한 데이터나 기능(메서드)을 책임이 있는 객체에 그룹화 시켜줍니다.

상속 : 상위 클래스의 기능을 하위 클래스가 사용할 수 있는 것입니다. (중복되는 코드 재사용)

다형성 : 객체간 관계를 유연하게 해주는 특징입니다.

 

자바에서 가장 중요한 부분은 다형성입니다.

다형성은 역할과 구현으로 나뉩니다. (유연해지며 변경도 편리합니다.)

역할 : 인터페이스

구현 : 구현객체(impl)

 

 

 

 

 

다형성의 본질 :

 

클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있습니다.

그러기 위해서는 인터페이스(역할) 부분을 안정적으로 설계하는 것이 중요합니다.

 

예를 들어

눈길에 가야할 일이 생겼을때, 자동차의 일반타이어를 스노우타이어로 교체하여 

눈길을 무사히 갈수 있게 된다면 스노우타이어만의 교체로 인해 눈길을 갈 수 있게 문제가 해결되게 되겠죠!

 

 

 

 

 

 

 

Solid – 좋은 객체 지향 설계의 5가지 원칙

 

단일 책임 원칙(SRP) 한 클래스는 하나의 책임만 가져야 한다.

개방-폐쇄 원칙(OCP) - 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. (스프링 지원 필요)

리스코프 치환 원칙(LSP) - 프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.

인터페이스 분리 원칙(ISP) - 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.

의존관계 역전 원칙(DIP) - 프로그래머는 '추상화(역할)에 의존해야지, 구체화에 의존하면 안된다.' 의존성 주입은 이 원칙을 따르는 방법 중 하나다.

 

OCP와 DIP가 중요도가 높은 원칙입니다.

반응형

댓글