스터디/자바

[디자인패턴] 개방 폐쇠 원칙 (Open closed principle)

짐배몬 2020. 10. 10. 23:20

#개방 폐쇠 원칙 (Open closed principle) 
- 객체는 확장에는 열려 있어야 하지만 수정에는 닫혀 있어야 한다. 

##원칙 위반시 증상 
- 기능 확장을 할 때마다 기존코드를 수정해야 한다. 
- if else 블록이 자주 등장한다. 
- 기능 확장을 위해 코드 수정시에 여러 클래스에서 다발적으로 진행이 된다. 

##원칙 적용 방법 
- 변화되는 부분을 추상화해서 변화를 고정시킨다. 
- 기능 추가사항이 발생하면 클래스 상속을 통해 하위 클래스에서 기능을 구현한다. 
- 기존코드를 수정하지 않더라도 객체 상속의 다형성 원리에 의해 기능확장이 이루어진다.

 

#느낀점 
사무실에서 이코드를 보다가 머리를 얻어 맞은듯하였다.  

추상화의 장점을 너무도 잘보여주는 예제였다. 추상화를 통해 생성한 하나의 메소드를 

다른 클래스들이 상속받아 유기적으로 다형성을 가지는것이 놀라웠다. 

동시에 내가 하고 있는 if else 덕지덕지의 개발이 부끄러워 지기도 했다. 

이미 짜여진 판에서 의미도 모른체 상속받고 진행하던 프로젝트에 조금 신물나기도 했다. 

내가 이미 짜연진 판에서 개방 폐쇠 원칙이나 어제 배운 단일성의 원칙을 어떻게 하면 지킬수 있을지 

지속적으로 생각하면서 개발을 진행해야 겠다.

 

github.com/JaeHyeonBae/javadesignpattern/