본문 바로가기
Spring/용어정리

개방 폐쇄 원칙 (OCP, Open-colosed Principle)

by 신지형 2022. 2. 16.

개방 폐쇄 원칙은 깔끔한 설계를 위해 적용 가능한 객체지향 설계 원칙 중의 하나

- 클래스나 모듈은 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.

 

높은 응집도와 낮은 결합도 (high coherence and low coupling)

 

[높은 응집도]

- 응집도가 높다는 건 하나의 모듈, 클래스가 하나의 관심사에만 집중되어 있다는 뜻

- 불필요하거나 직접 관련이 없는 외부의 관심과 책임이 얽혀 있지 않다.

- 하나의 공통 관심사는 한 클래스에 모여 있다.

- 높은 응집도는 클래스 레벨 뿐만 아니라 ( 패키지, 컴포넌트, 모듈 ) 에 이르기까지
   그 대상의 크기가 달라도 동일한 원리로 적용될 수 있다.

   변화가 일어날 때 해당 모듈에서 변하는 부분이 크다는 것

 

[낮은 결합도]

- 낮은 결합도는 높은 응집도보다 더 민감한 원칙.

- 책임과 관심사가 다른 오브젝트 또는 모듈과는 낮은 결합도, 느슨하게 연결된 형태를 유지하는 것이 바람직하다.

- 느슨한 연결은 관계를 유지하는 데 꼭 필요한 최소한의 방법만 간접적인 형태로 제공하고

  나머지는 서로 독립적이고 알 필요도 없게 만들어주는 것.

결합도 : 하나의 오브젝트가 변경이 일어날 때에 관계를 맺고 있는 다른 오브젝트에게 변화를 요구하는 정도

댓글