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] 의존성 주입은 이 원칙을 따르는 방법 중 하나다.
- 클라이언트가 구현체를 바라보면 안되고 , 인터페이스를 바라보고 있어야한다
'공부 > 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 |