우당탕탕 개발일지

개방 폐쇄 원칙, OCP, 객체지향, JDBC 본문

기타

개방 폐쇄 원칙, OCP, 객체지향, JDBC

민아당긴아 2023. 11. 2. 11:46

1. 개방 폐쇄 원칙(OCP: Open-Closed Principle)이란?

- 기존 코드를 변경하지 않으면서, 새로운 기능을 추가할 수 있도록 설계되어야 한다는 원칙

- 확장(새로운 기능 추가)에는 열려있고, 수정에는 닫혀있음

- 다형성과 확장이라는 객체 지향의 장점을 극대화

- * 다형성: 기능을 변경하더라도 애플리케이션 전체를 바꿀 필요는 없음

 

따라서 기능을 추가할 때, 1)추상화 클래스 추가 2)상속관계 맞추기

이 두가지 단계만으로 유연한 확장이 가능하다.

 

2. 원칙으로 무엇을 지켜야 하나?

1. 변경(확장)될 것과 변하지 않을 것을 엄격히 구분한다.

2. 이 두 모듈이 만나는 지점에 추상화(추상클래스 or 인터페이스)를 정의한다.

3. 구현체에 의존하기보다 정의한 추상화에 의존하도록 코드를 작성 한다.

 

3. OCP 원칙을 기반으로 하는 JDBC

자바 애플리케이션은 데이터베이스의 변화와 독립적이다. 데이터베이스가 수정되어도 자바 애플리케이션에는 영향을 미치지 않는다. -> 수정에는 닫혀있음.

그러나 자바 애플리케이션을 수정해서 데이터베이스를 변경(확장)할 수 있다. -> 확장(새로운 기능 추가)에 열려있음.

참고: 

https://blog.itcode.dev/posts/2021/08/14/open-closed-principle
https://inpa.tistory.com/entry/OOP-%F0%9F%92%A0-%EC%95%84%EC%A3%BC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EB%8A%94-OCP-%EA%B0%9C%EB%B0%A9-%ED%8F%90%EC%87%84-%EC%9B%90%EC%B9%99