행동패턴3 반복자 패턴(iterator pattern) 반복자(이터레이터) 패턴이란? 컬렉션의 요소에 순차적으로 접근할 수 있는 인터페이스를 제공하는 패턴 컬렉션의 내부 구조를 노출하지 않고도 요소에 접근할 수 있으며, 컬렉션의 순회를 추상화하여 구현이 가능하다. 이터레이터 (Iterator) 요소에 접근하기 위한 인터페이스를 정의합니다. 주로 next() 메서드를 통해 다음 요소에 접근할 수 있습니다. 컬렉션 (Collection) 이터레이터를 생성하는 인터페이스를 정의합니다. 이터레이터를 생성하는 createIterator() 메서드 등이 포함될 수 있습니다. 컨크리트 이터레이터 (Concrete Iterator) 이터레이터 인터페이스를 실제로 구현합니다. 컬렉션 내의 현재 위치 등을 추적하면서 요소에 접근합니다. 컨크리트 컬렉션 (Concrete Col.. 2024. 3. 7. 옵저버 패턴(observer pattern) 옵저버 패턴이란? 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통하여 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴 주체란? 객체의 상태 변화를 보고 있는 관찰자이다. 옵저버들이란? 객체의 상태 변화에 따라서 전달되는 메서드 등을 기반으로 변화가 생기는 객체를 의미한다. Java import java.util.ArrayList; import java.util.List; // 주제(Subject) 인터페이스 interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); } // 옵.. 2024. 2. 29. 전략 패턴(strategy pattern) 전략 패턴이란? 전략 패턴은 클라이언트가 객체의 특정 행위를 변경하고자 할 때, 해당 행위를 직접 수정하지 않고 외부에서 알고리즘을 캡슐화하여 변경 가능하게 하는 디자인 패턴 Java import java.text.DecimalForamt; import java.util.ArrayList; import java.util.List; // 배송 방식을 나타내는 전략 인터페이스 interface ShippingStrategy { void shipPackage(String packageId); } // 택배 배송 class ExpressShipping implements ShippingStrategy { private String packageName; public ExpressShipping(String pa.. 2024. 2. 27. 이전 1 다음