객체지향
오브젝트(조영호) 책 정리 -15-
정한_s
2021. 12. 3. 17:08
디자인 패턴의 목적은 설계를 재사용하는 것이다. 디자인 패턴은 다양한 변경을 다루기 위해 반복적으로 재사용할 수 있는 설계의 묶음이다.
패턴을 따르면 특정한 상황에 적용할 수 있는 설계를 쉽고 빠르게 떠올릴 수 있다.
디자인 패턴의 구성요소는 클래스와 매서드가 아니라 역할과 책임이다. 디자인 패턴을 따른다고 할때 역할, 책임, 협력의 관점에서 유사성을 공유하는 것이지, 특정한 구현 방식을 강제하는 것이 아니다. 디자인 패턴은 구체적인 구현 방법에 대해서 제한을 두지 않는다.
프레임워크는 설계와 코드를 함께 재사용하기 위한 것이다. 프레임워크는 애플리케이션의 아키텍처를 구현 코드의 형태로 제공한다.
프레임워크는 코드를 재사용함으로써 설계 아이디어를 재사용한다.
프레임 워크는 의존성 역전 원리에 따라 추상화에만 의존하도록 의존성의 방향을 역전한다. 이로써 구현 세부 사항을 숨기고 변하지 않는 협력 구조에 의존함으로써 변경에 유연하게 대처할 수 있다.
의존성 역전은 의존성의 방향뿐만 아니라 제어 흐름의 주체도 역전시킨다. 프레임워크가 애플리케이션에 속하는 서브클래스의 매서드를 호출한다. 따라서 프레임워크를 사용할 경우 개별 애플리케이션에서 프레임워크로 제어 흐름의 주체가 이동한다.