공부/JAVA

좋은객체지향의설계원칙5가지(SOLID)

Dr.thousand 2022. 2. 26. 20:51
728x90

SRP (Single Responsibiliy Principle) : 단일 책임원칙

  : 한 클래스는 하나의 책임만 가져야한다

    - 한 클래스를 변경할 때 다른 클래스들에 파급효과가 미치면 안된다. 예를 들어 예전 JSP의 경우 DB커넥션과 UI, Bean등 여러가지가 한군데 뭉쳐있다. 이를 각자의 역활을 하는 클래스로 나누어 해당 기능에대한 책임을 지게해야한다.


OCP (Open Closed Priciple) : 개방 폐쇄 원칙

  : “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.”

    - 어느 모듈에 수정을 할 때 다른 모듈을 수정하게 해서는 안된다.

      이를 지키면 어느 기능을 추가개발 시 , 기존에 동작하는 코드들에 대해 변경할 필요가 없다.

 


LSP (Liskov Substitution Priciple) : 리스코프 치환 원칙

  : “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라.

    - 예를들어 "사람"이라는 인터페이스에 "가다" 라는 메소드가 있을때 , 그 구현체인 "철수"는 "가다"를 했을 때 앞으로 나아가야 한다, 다른 구현체인 "영희"도 "가다"를 했을 때 뒤로가면 안되고 앞으로 나아가야 한다. 즉 LSP는 인터페이스의 기능에대한 약속이다.


ISP (Interface Segregation Priciple) : 인터페이스 분리 원칙

  : “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”

    - 큰 하나의 인터페이스 중 별도에 책임을 가질 경우 인터페이스를 분리한다. 예를 들어 자동차의 경우 운전와 정비 인터페이스를 나누어 줄 경우 , 정비가 변경되어도 운전자에게는 영향을 미치지 않는다

 

-- 무슨 의미인지 잘 이해가안감;;


DIP (Dependency Inversion Priciple) : 의존성 역전 원칙

  : 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.”[4] 의존성 주입은 이 원칙을 따르는 방법 중 하나다.

    - 클라이언트가 구현체를 바라보면 안되고 , 인터페이스를 바라보고 있어야한다

728x90
반응형

'공부 > JAVA' 카테고리의 다른 글

[Java] 클래스  (0) 2022.09.27
[JAVA]제어문  (2) 2022.09.20
[Java] 연산자  (0) 2022.09.14
자바 데이터 타입, 변수 그리고 배열  (0) 2022.09.06
[JAVA] JVM 이란 무엇이며 자바코드는 어떻게 실행되는가  (0) 2022.08.30