Home
My Technical Diary
Cancel

Design Patterns - Strategy

Behavioral Patterns - Strategy Intent 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하며, 이들을 상호교환이 가능하도록 만든다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 한다. 정책(Policy)이라고도 불린다. Utility 행동들이 조금씩 ...

Design Patterns - State

Behavioral Patterns - State Intent 객체 내부 상태에 따라 스스로 행동을 변경할 수 있개 허가하는 패턴으로, 이렇게 하면 객체는 마치 자신의 클래스를 바꾸는 것과 같은 효과를 보인다. 상태 표현 객체(Object for State) 라고도 불린다. Utility 객체의 행동이 상태에 따라 달라질 수 있고...

Design Patterns - Observer

Behavioral Patterns - Observer Intent 객체 사이에 일 대 다의 의존 관계를 정의해 두어, 어떤 객체의 상태 변할 때 그 샛체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 갱신될 수 있도록 한다. 종속자(Dependent), 게시-구독(Publish-Subscribe) 라고도 불린다. Utilit...

Design Patterns - Memento

Behavioral Patterns - Memento Intent 캡슐화를 위배하지 않은 채 어떤 객체의 내부상태를 잡아내고 실체화시켜 둠으로써, 이후 해당 객체가 그 상태로 되돌아올수 있도록 한다. 토큰(Tocken)이라고도 불린다. Utility 어떤 객체의 상태에 대한 스냅샷(몇개의 일부)을 저장한 후 나중에 이 상태로 복구...

Design Patterns - Mediator

Behavioral Patterns - Mediator Intent 한 집합에 속해있는 객체의 상호작용을 캡슐화하는 객체를 정의한다. 객체들이 서로를 참조하지 않도록 하여 객체 사이의 소결합(Loose Coupling)을 촉진시키며, 개발자가 객체의 상호작용을 독립적으로 다양화 시킬수 있게 만든다. Utility 여러 객체가 잘 ...

Design Patterns - Iterator

Behavioral Patterns - Iterator Intent 내부 표현부를 노출하지 않고 어떤 집합 객체에 속한 원소들을 순차적으로 접근할수 있는 방법을 제공한다. 커서(Cursor)라고도 불린다. Utility 객체 내부 표현 방식으로 모르고도 집합 객체의 각 원소들에 접근하고 싶을 떄 집합 객체를 순회하는 다양한 ...

Design Patterns - Command

Behavioral Patterns - Command Intent 요청 자체를 캡슐화하는 것이다. 이를 통해 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기시키거나 로깅하여, 되돌릴 수 있는 연산을 지원한다. 작동(Action), 트랜젝션(Transaction) 이라고도 불린다. Utility 수행할 동작을 객체로 매개변수화...

Design Patterns - Chain of Responsibility

Behavioral Patterns - Chain of Responsibility Intent 메세지를 보내는 객체와 이를 받아 처리하는 객체들 간의 결합도를 없애기 위한 패턴이다. 하나의 요청에 대한 처리가 반드시 한 객체에서만 되지 않고, 여러 객체에게 그 처리 기회를 주려는 것이다. Utility 하나 이상의 객체가 요청을 ...

Design Patterns - Proxy

Structural Patterns - Proxy Intent 다른 객체에 대한 접근을 제어하기 위한 대리자 또는 자리채움자 역할을 하는 객체를 둔다. 대리자(Surrogate)라고도 불린다. Utility Proxy Pattern은 단순한 포인터보다는 조금 더 다방면에 활용 가능하다. 정교한 객체 참조자가 필요한 때 적용할 수 있다....

Design Patterns - Flyweight

Structural Patterns - Flyweight Intent 공유(sharing)을 통해 많은 수의 소립(fine-grained) 객체들을 효과적으로 지원한다. Utility Flyweight Pattern은 언제 사용하는가에 따라서 그 효과가 달라지게 된다. 응용프로그램이 대량의 객체를 사용해야 할 때 객체의 수가 ...