본문 바로가기

GoF2

구조 패턴 - 장식자(Decorator) - 참조: GoF의 디자인 패턴 - 다른 패턴과의 관계: https://refactoring.guru/design-patterns/decorator - 장식자(Decorator) 아마 한번쯤은 들어봤을법한 랩퍼(Wrapper) 라고도 불리우는 패턴이다. 객체에 동적으로 새로운 책임을 추가할 수 있게 한다. 기능을 추가하려면 서브 클래스를 생성하는것보다 융통성 있는 방법을 제공한다. - 시나리오 GUI 툴킷이 있다고 가정해보자. 모든 사용자 UI 요소에는 필요 없지만, 어떤 특정 사용자 UI 요소에만 스크롤링이나 테두리 같은 속성을 추가할 필요가 있다고 해보자. Text 를 출력하는 서비스를 제공하는 TextView 클래스가 있다고 가정하자. 이 TextView에 스크롤 기능이나 두꺼운 테두리가 필요하다면.. 2021. 5. 11.
구조 패턴 - 적응자(Adapter) - 참조: GoF의 디자인 패턴 - 적응자(Adapter) 패턴 적응자 패턴은 다른 이름으로 래퍼(Wrapper)라고 불리우는 패턴이다. 클래스의 인터페이스를 사용자가 원하는 형태로 변환(적응)시킨다. 이렇게 변환(적응)을 통해서 일치하지 않는 인터페이스를 갖는 클래스들이 함께 동작할 수 있도록 한다. - 시나리오 그림 편집기가 있다고 가정해보자. 그림판의 주요한 추상적 개념은 그래픽 객체들이다. 이런 공통 그래픽 요소에 대한 인터페이스는 추상 클래스인 Shape 에 정의되어 있다. 그리고 각 그래픽 요소인 선과 다각형은 각각 LineShape, PolygonShape 과 같은 클래스로 개발해야 한다. 위와 같이 간단한 도형도 있겠지만 TextShape는 텍스트처리시 버퍼관리와 같이 다른 그래픽 요소에 .. 2021. 4. 23.