본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


객체지향 OOP

객체지향 이란? 3 - 객체지향 설계 5원칙 SOLID

반응형

응집도와 결합도 

 

 좋은 소프트웨어 설계를 위해서는 결합도 (coupling)은 낮추고 응집도(cohesion)은 높여야 한다. 

 

결합도 

 

 모듈(클래스) 간의 상호 의존 정도를 나타내는 지표로 결합도가 낮으면 모듈간의 상호 의존성이 줄어 객체의 재사용 및 유지 보수가 유리하다 .

 

응집도 

 

 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져 ,재사용 및 유지보수가 용이하다. 

 

 

1, SPR(Single Responsibility Priciple)  단일 책임 원칙 

 

 어떠한 클래스는 변경해야 하는 이유는 한가지 뿐 이여야 한다. 각각의 클래스는 자신의 기능에 책임을 집중한다 .

 

2.OCP(Open Closed Principle)  개방 폐쇄 원칙

 

  자신의 확장에는 열려 있고 ,주변의 변화에 대해서는 닫혀 있어야 한다. 

 

 상위 클래스 또는 인터페이스를 중간에 둠으로 , 자신의 변화에 대해서는 폐쇄적이지만, 인터페이스는 외부의 변화에 대해서 확장을 개방할 수 있다 .

 

이러한 부분은 JDBC와 Mybatis , Hibernate  JAVA 에서는 Stream()에서 찾아 볼 수 있다.

 

JDBC를 예로 들면 어플리케이션의 입장에서 DB의 종류는 여러가지 일 수 있다 . 만약 어플리케이션 자체에서 DB를 연결해야 한다면 데이터 베이스의 종류가 늘어날수록 거기에 상응하는 코드가 늘어난다 . 이를 해결하기 위해 

JDBC Interface 는  어플리케이션과 DB 사이에서 connection에 관한 기능들을 제공한다 이를 개방 폐쇄 원칙으로 보면    안쪽으로는 하나의 어플리케이션에의해 사용되지만 바깥쪽으로는 여러 가지 DB에 대하여 상응하는 기능을 사용할 수있게되는 개방 폐쇄 원칙의 좋은 예이다. 

 

3. LSP (Liskov Substitution Principle)  리스코프 치환 원칙

 

 -서브 타입(자식)은 언제나 자신의 기반 타입(부모 타입)으로 교체 할 수 있어야 한다 .

 

4. ISP(Interface Segregation Principle)  인터페이스 분리 원칙

 

 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다. 프로젝트 요구 사항과 설꼐에 따라서 SRP(단일 책임원칙) / ISP(인터페이스 분리원칙) 을 선택한다 .

 

5. DIP(Dependency Inversion Principle) 의존 역전 원칙

 

- 자신보다 변하기 쉬운 것에 의존하지 말아야 한다. 

반응형

'객체지향 OOP' 카테고리의 다른 글

객체지향 이란? 4 - POJO  (0) 2021.05.05
객체지향 이란 ? 2 - 객체지향의 4가지 특성  (0) 2021.05.04
객체지향이란?  (0) 2021.05.04