행위 패턴(Behavioral Patterns)
옵저버 패턴(Observer)
객체들 사이에 1 : N 의 의존관계를 정의하여 어떤 객체의 상태가 변할 때, 의존관계에 있는 모든 객체들이 통지받고 자동으로 갱신될 수 있게 만드는 패턴입니다.
상태가 변할 때 의존자들에게 알리고, 자동 업데이트하는 패턴
상태 패턴(State)
객체의 내부 상태가 변경될 때 행동을 변경하도록 허락합니다. 객체는 자신의 클래스가 변경되는 것처럼 보이게 됩니다.
객체 내부 상태에 따라서 행위를 변경하는 패턴
스트레이트지 패턴(Strategy)
동일 계열의 알고리즘들을 정의하고, 각각 캡슐화하며 이들을 상호교환 가능하도록 만드는 것입니다. 알고리즘을 사용하는 사용자로부터 독립적으로 알고리즘이 변경될 수 있도록 하는 패턴입니다.
다양한 알고리즘 캡슐화하여 알고리즘 대체가 가능하도록 한 패턴
템플릿 패턴(Template)
객체의 연산에서 알고리즘의 뼈대만 정의하고, 나머지는 서브클래스에서 이루어지게 하는 패턴입니다. 템플릿패턴은 알고리즘의 구조는 변경하지 않고 알고리즘의 각 단계를 서브클래스에서 재정의하게 됩니다.
알고리즘 골격의 구조를 정의한 패턴
비지터 패턴(Visitor)
객체구조를 이루는 원소에 대해 수행할 연산을 표현합니다. 방문자는 연산에 적용할 원소의 클래스를 변경하지 않고 새로운 연산을 재정의 할 수 있습니다.
오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴
역할 사슬 패턴(Chain of Responsibility)
요청을 처리하는 기회를 하나 이상의 객체에 부여하여 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴입니다. 요청을 받는 객체를 연쇄적으로 묶고 객체를 처리할 수 있을 때까지 요청을 전달합니다.
객체들끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
커맨드 패턴(Command)
요청을 객체로 캡슐화하여 서로 다른 사용자의 매개변수화, 요청 저장 또는 로깅, 연산의 취소를 지원하게 만드는 패턴입니다.
요청 자체를 캡슐화하여 파라미터로 넘기는 패턴
인터프리터 패턴(Interpreter)
주어진 언어에 대해서 문법을 위한 표현수단을 정의하고, 해당 언어로 된 문장을 해석하는 해석기를 사용하는 패턴입니다.
언어 규칙 클래스를 이용하는 패턴
이터레이터 패턴(Iterator)
내부 표현부를 노출하지 않고 어떤 객체 집합의 원소들을 순차적으로 접근할 수 있는 방법을 제공하는 패턴입니다.
내부 표현은 보여주지 않고 순회하는 패턴
미디에이터 패턴(Mediator)
한 집합에 속해있는 객체들의 상호 작용을 캡슐화하는 객체를 정의하는 패턴입니다. 중재자는 객체들이 직접 서로 참조하지 않도록함으로써 객체들간의 느슨한 연결을 촉진시키며 객체들의 상호작용을 독립적으로 다양화 시킬 수 있도록 해줍니다.
객체 간 상호작용을 캡슐화한 패턴
메멘토 패턴(Memento)
상태 값을 미리 저장해 두었다가 복구하는 패턴
'전공 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어 공학] 소프트웨어 테스트의 분류 (0) | 2022.06.19 |
---|---|
[소프트웨어 공학] 소프트웨어 테스트 (0) | 2022.06.19 |
[소프트웨어 공학] 구조 패턴(Structural Patterns) (0) | 2022.06.19 |
[소프트웨어 공학] 생성(Creational) 패턴 (0) | 2022.06.19 |
[소프트웨어 공학] GoF 디자인패턴의 분류 (0) | 2022.06.19 |
행위 패턴(Behavioral Patterns)
옵저버 패턴(Observer)
객체들 사이에 1 : N 의 의존관계를 정의하여 어떤 객체의 상태가 변할 때, 의존관계에 있는 모든 객체들이 통지받고 자동으로 갱신될 수 있게 만드는 패턴입니다.
상태가 변할 때 의존자들에게 알리고, 자동 업데이트하는 패턴
상태 패턴(State)
객체의 내부 상태가 변경될 때 행동을 변경하도록 허락합니다. 객체는 자신의 클래스가 변경되는 것처럼 보이게 됩니다.
객체 내부 상태에 따라서 행위를 변경하는 패턴
스트레이트지 패턴(Strategy)
동일 계열의 알고리즘들을 정의하고, 각각 캡슐화하며 이들을 상호교환 가능하도록 만드는 것입니다. 알고리즘을 사용하는 사용자로부터 독립적으로 알고리즘이 변경될 수 있도록 하는 패턴입니다.
다양한 알고리즘 캡슐화하여 알고리즘 대체가 가능하도록 한 패턴
템플릿 패턴(Template)
객체의 연산에서 알고리즘의 뼈대만 정의하고, 나머지는 서브클래스에서 이루어지게 하는 패턴입니다. 템플릿패턴은 알고리즘의 구조는 변경하지 않고 알고리즘의 각 단계를 서브클래스에서 재정의하게 됩니다.
알고리즘 골격의 구조를 정의한 패턴
비지터 패턴(Visitor)
객체구조를 이루는 원소에 대해 수행할 연산을 표현합니다. 방문자는 연산에 적용할 원소의 클래스를 변경하지 않고 새로운 연산을 재정의 할 수 있습니다.
오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴
역할 사슬 패턴(Chain of Responsibility)
요청을 처리하는 기회를 하나 이상의 객체에 부여하여 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴입니다. 요청을 받는 객체를 연쇄적으로 묶고 객체를 처리할 수 있을 때까지 요청을 전달합니다.
객체들끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
커맨드 패턴(Command)
요청을 객체로 캡슐화하여 서로 다른 사용자의 매개변수화, 요청 저장 또는 로깅, 연산의 취소를 지원하게 만드는 패턴입니다.
요청 자체를 캡슐화하여 파라미터로 넘기는 패턴
인터프리터 패턴(Interpreter)
주어진 언어에 대해서 문법을 위한 표현수단을 정의하고, 해당 언어로 된 문장을 해석하는 해석기를 사용하는 패턴입니다.
언어 규칙 클래스를 이용하는 패턴
이터레이터 패턴(Iterator)
내부 표현부를 노출하지 않고 어떤 객체 집합의 원소들을 순차적으로 접근할 수 있는 방법을 제공하는 패턴입니다.
내부 표현은 보여주지 않고 순회하는 패턴
미디에이터 패턴(Mediator)
한 집합에 속해있는 객체들의 상호 작용을 캡슐화하는 객체를 정의하는 패턴입니다. 중재자는 객체들이 직접 서로 참조하지 않도록함으로써 객체들간의 느슨한 연결을 촉진시키며 객체들의 상호작용을 독립적으로 다양화 시킬 수 있도록 해줍니다.
객체 간 상호작용을 캡슐화한 패턴
메멘토 패턴(Memento)
상태 값을 미리 저장해 두었다가 복구하는 패턴
'전공 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어 공학] 소프트웨어 테스트의 분류 (0) | 2022.06.19 |
---|---|
[소프트웨어 공학] 소프트웨어 테스트 (0) | 2022.06.19 |
[소프트웨어 공학] 구조 패턴(Structural Patterns) (0) | 2022.06.19 |
[소프트웨어 공학] 생성(Creational) 패턴 (0) | 2022.06.19 |
[소프트웨어 공학] GoF 디자인패턴의 분류 (0) | 2022.06.19 |