본문 바로가기

GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software)47

GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 5장 행동패턴 :: 상태(State) 상태(State) 2020. 5. 11.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 5장 행동패턴 :: 감시자(Observer) 감시자(Observer) 2020. 5. 10.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 5장 행동패턴 :: 메멘토(Memento) 메멘토 2020. 5. 9.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 5장 행동패턴 :: 중재자(Mediator) [중재자(Mediator) - 객체 행동] 한 집합에 속해있는 객체의 상호작용을 캡슐화하는 객체를 정의한다. 객체들이 직접 서로를 참조하지 않도록 하여 객체 사이의 소결합(loose coupling)을 촉진시킨다. 객체지향 개발 방법론에서는 행동을 여러 객체에게 분산시켜 처리하도록 권하고 있다. 분할했다고는 하지만 시스템은 하나의 거대한 덩어리처럼 동작해야 한다. 또 시스템의 행동을 변경하는 것 역시 매우 어려워진다. 행동이 여러 객체에 걸쳐 분산되어 있기 때문에 시스템의 행동을 수정하려면 여러 클래스들을 재정의해야 할지도 모른다. 별도의 중재자 객체를 활용하면 상호작용과 관련된 행동을 하나의 객체로 모아서 이런 문제를 피해갈 수 있다. 중재자 객체는 객체 그룹 간의 상호작용을 제어하고 조화를 이루는 역.. 2020. 5. 8.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 5장 행동패턴 :: 반복자(Iterator) [반복자(Iterator) - 객체 행동] 내부 표현부를 노출하지 않고 어떤 집합 객체에 속한 원소들을 순차적으로 접근할 수 있는 방법을 제공한다. 커서(Cursor) 이 패턴의 목적은 리스트 객체(집합 객체-aggregate object)에 접근해서 새로운 내용을 삽입, 삭제하거나 순회하는 내용을 반복자 객체에 정의하는 것이다. 반복자 객체를 나타내는 iterator 클래스는 리스트의 원소들에 접근하는 데 필요한 인터페이스를 제공한다. ListIterator 클래스의 인스턴스를 생성하기 전에 먼저 순회 주체가 되는 List 객체를 생성해야 한다. ListIterator 클래스의 인스턴스를 생성하고 나면 이를 이용해서 리스트 원소에 접근할 수 있게 된다. CurrentItem() : 리스트의 현재 원소를.. 2020. 5. 7.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 5장 행동패턴 :: 해석자(Interpreter) [해석자(Interpreter) - 클래스 행동] 2020. 5. 6.