29 Sep 2023 DesignPattern
컴포지트 (Composite)
부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리 구조로 구성합니다. 사용자로 하여금 개별 객체와 복함 객체를 모두 동일하게 다룰 수 있도록 하는 패턴 입니다.
동기
그래픽 편집기나 구조도 캡처 시스템 같은 그래픽 응용프로그램을 살펴보면, 사룔자가 간단한 그림 구성요소들을 모아서 복잡한 다이어그램을...
23 Sep 2023 DesignPattern
브릿지 (Bridge)
구현에서 추상을 분리하여, 이들이 독립적으로 다양성을 가질 수 있도록 합니다.
다른 이름
핸들/구현부(Handle/Body)
동기
하나의 추상적 개념이 여러 가지 구현으로 구체화 될 수 있을 때, 대부분 상속을 이용해서 문제를 해결한다. 추상 클래스에서 추상적 개념에 대한 인터페이스를 정의하고, 구체적인 서브클래스에서 서로...
10 Sep 2023 DesignPattern
어댑터 (Adapter)
클래스의 인터페이스를 사용자가 기대하는 인터페이스의 형태로 적응(변환)시킵니다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작시킵니다.
다른 이름
래퍼(Wrapper)
활용 방안
적응자 패턴은 다음 상황에서 사용한다.
- 기존 클래스를 사용하고 싶은데 인터페이스가 맞지 않을 때
- 아직 예측하지 못한 클래스나 실제 관련되지...
09 Sep 2023 DesignPattern
프로토타입 (Prototype)
원영이 되는(prototypical) 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성합니다.
활용 방안
프로토타입 패턴은 생성, 복합, 표현 방법에 독립적인 제품을 만들고자 할 때 쓴다.
- 인스턴스화할 클래스를 런타임에 지정할 때
- 제품 클래스 계통과 병렬적으로 만드는 팩토리...
09 Sep 2023 DesignPattern
싱글톤 (Singleton)
오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공합니다.
활용 방안
싱글톤은 다음과 같은 상황에 사용할 수 있다.
- 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점(accesspoint)으로 모든 사용자가 접근할 수 있도록 해야 할 때
- 유일한 인스턴스가...