분류 전체보기 (47) 썸네일형 리스트형 [Design Pattern] State(상태) 패턴이란? 행위 패턴(Behavioral Pattern) 상태 패턴(State Pattern)은 객체지향 디자인 패턴 중 하나로, 객체가 내부 상태에 따라 행동을 변경할 수 있도록 하는 패턴입니다. 이 패턴은 객체가 다양한 상태를 가질 수 있고, 각 상태에 따라 객체가 다르게 동작해야 할 때 유용합니다. 상태 패턴은 크게 세 가지 구성요소로 이루어집니다. 상태(State): 객체가 가질 수 있는 상태를 나타내는 인터페이스입니다. 이 인터페이스에는 해당 상태에서 수행되어야 하는 모든 메서드가 정의됩니다. 구체적인 상태(Concrete State): 상태 인터페이스를 구현한 클래스입니다. 이 클래스는 객체가 실제로 가질 수 있는 상태 중 하나를 나타내며, 해당 상태에서 수행되어야 하는 모든 메서드를 구현합니다. 컨텍스.. [Design Pattern] Observer(옵저버) 패턴이란? 행위 패턴(Behavioral Pattern) 옵저버 패턴(Observer Pattern)은 객체 지향 디자인 패턴 중 하나로, 객체 사이의 의존성을 줄이고, 유연하게 상호작용하도록 도와주는 패턴입니다. 이 패턴은 한 객체의 상태가 변경되었을 때, 그 객체에 의존하는 다른 객체들이 자동으로 그 변경사항을 알 수 있도록 해주는 방법을 제공합니다. 이 패턴에서는 주체(Subject) 객체와 관찰자(Observer) 객체가 있습니다. 주체 객체는 상태가 변경될 때마다 자신에게 등록된 모든 관찰자 객체들에게 변경사항을 알리는 역할을 합니다. 관찰자 객체는 주체 객체의 상태를 관찰하다가 변경사항을 감지하면, 이에 대응하는 작업을 수행합니다. 옵저버 패턴은 매우 널리 사용되며, 대표적으로 아래와 같은 분야에서 사용.. [Design Pattern] Memento(메멘토) 패턴이란? 행위 패턴(Behavioral Pattern) 메멘토 패턴(Memento Pattern)은 소프트웨어 디자인 패턴 중 하나로, 객체의 상태를 저장하고 나중에 복원할 수 있는 메커니즘을 제공합니다. 이 패턴은 보통 다음과 같은 상황에서 사용됩니다. 어떤 객체의 상태를 변경하고, 이 변경 내용을 이후에 취소하거나 이전 상태로 복원하려고 할 때, 상태를 저장하고 복원하는 과정을 간편하게 처리할 수 있습니다. 메멘토 패턴은 세 가지 주요 구성 요소로 이루어져 있습니다. 첫째, Originator는 상태를 저장하고 복원하려는 객체입니다. 둘째, Memento(메멘토)는 상태를 저장하는 객체입니다. 셋째, Caretaker는 Memento를 저장하고 관리하는 객체입니다. 이 패턴을 사용하면, Originator 객.. [Design Pattern] Mediator(중재자) 패턴이란? 행위 패턴(Behavioral Pattern) 중재자 패턴(Mediator Pattern)은 객체 지향 소프트웨어 디자인 패턴 중 하나로, 다수의 객체들 간의 상호작용을 조정하는 역할을 수행하는 객체를 정의합니다. 중재자 패턴은 객체들 간의 직접적인 상호작용을 제거함으로써, 객체 간 결합도를 낮추고 유지보수성을 향상시키는 장점을 제공합니다. 중재자 패턴은 일반적으로 다음과 같은 구성 요소로 이루어집니다. 중재자(Mediator) : 다수의 객체들 간의 상호작용을 조정하는 역할을 수행하는 객체입니다. 중재자는 객체 간의 직접적인 상호작용을 처리하고, 객체 간에 메시지를 전달합니다. 동료 객체(Colleague) : 중재자에 의해 관리되는 객체입니다. 동료 객체는 중재자와 상호작용하며, 다른 동료 객체와도 .. [Design Pattern] Iterator(반복자) 패턴이란? 행위 패턴(Behavioral Pattern) 반복자 패턴(Iterator Pattern)은 컬렉션(Collection) 객체의 요소(element)에 접근하는 방법을 제공하는 패턴입니다. 이 패턴은 컬렉션 객체와 반복자 객체(Iterator)를 분리하여 구현합니다. 컬렉션 객체는 요소를 추가하고 제거하는 책임을 가지고, 반복자 객체는 컬렉션 객체 내의 요소를 하나씩 가져오는 책임을 가집니다. 반복자 패턴을 구현하면, 컬렉션 객체의 구현과 사용자 코드를 분리하여 코드의 재사용성과 유지보수성을 높일 수 있습니다. 또한, 컬렉션 객체 내부 구현을 외부에 노출하지 않으므로 객체의 불변성(Immutability)을 유지할 수 있습니다. 반복자 패턴은 다음과 같이 구성됩니다. Iterator 인터페이스: 반복자 .. [Design Pattern] Interpreter(인터프리터) 패턴이란? 행위 패턴(Behavioral Pattern) 인터프리터 패턴(Interpreter Pattern)은 객체지향 디자인 패턴 중 하나로, 언어나 문법을 해석하고 실행하는 역할을 담당하는 패턴입니다. 인터프리터 패턴은 문법 규칙을 나타내는 클래스를 정의하고, 이를 해석하여 실행할 수 있는 클래스를 만들어 구성합니다. 이때 해석하는 작업은 주로 문장의 구조를 분석하고 각 구성 요소를 적절한 동작으로 변환하는 것입니다. 예를 들어, 자연어로 작성된 수학 수식을 계산하는 프로그램을 만들기 위해서는 문법 규칙을 정의하고, 이를 해석하여 수식을 계산하는 클래스를 구현해야 합니다. 이때 문법 규칙은 수식에 대한 문법적인 구조를 나타내는 클래스를 만들어 정의하고, 해석 작업은 각 구성 요소를 분석하여 적절한 계산 작업을.. [Design Pattern] Command(커맨드) 패턴이란? 행위 패턴(Behavioral Pattern) 커맨드 패턴(Command Pattern)은 객체 지향 디자인 패턴 중 하나로, 요청을 객체의 형태로 캡슐화하여 나중에 실행하거나 취소할 수 있는 연산을 지원합니다. 이 패턴에서는 요청을 발신하는 객체와 요청을 수행하는 객체 사이에 인터페이스를 정의하고, 이를 통해 서로를 분리합니다. 이를 통해 요청을 실행하는 객체는 어떤 요청이 언제 수행되어야 하는지 알 필요 없이 요청을 수행할 수 있습니다. 커맨드 패턴은 다음과 같은 요소로 이루어져 있습니다. 커맨드(Command): 요청을 나타내는 객체입니다. 보통 execute()라는 메서드를 갖고 있으며, 이 메서드를 호출하면 요청이 수행됩니다. 컨크리트 커맨드(Concrete Command): 커맨드의 구체적인 .. [Design Pattern] Chain of Responsibility(책임 연쇄) 패턴이란? 행위 패턴(Behavioral Pattern) 책임 연쇄 패턴(Chain of Responsibility)은 객체들이 연결된 체인 형태로 존재하며, 각 객체가 요청을 처리하지 못할 경우 다음 객체에게 책임을 전달하고, 다음 객체 또한 처리하지 못하면 다시 다음 객체로 전달하는 패턴입니다. 이 패턴은 객체 간의 결합도를 낮추고, 요청을 처리할 객체를 동적으로 결정하는 데 유용합니다. 요청 처리 과정에서 요청을 처리할 객체를 직접 지정하지 않아도 되므로, 클라이언트 코드와 서버 코드 간의 결합도가 낮아집니다. 이 패턴의 구성요소로는 요청(Request) 객체, 처리자(Handler) 인터페이스, 처리자 구현체, 그리고 체인 연결 방법이 있습니다. 요청 객체는 처리를 요청하는 객체를 나타내며, 처리자 인터페이.. 이전 1 2 3 4 5 6 다음