집합 객체 내부 구조를 노출시키지 않고 순회 하는 방법을 제공하는 패턴을 의미한다.\-> 집합 객체를 순회하는 클라이언트 코드를 변경하지 않고 다양한 순회 방법을 제공할 수 있다.
알고리즘의 구조를 서브 클래스가 확장할 수 있도록 템플릿으로 제공하여 구체적인 방법을 서브클래스에게 위임하는 패턴이다.추상클래스는 템플릿을 제공하고 하위 클래스는 구체적인 알고리즘을 제공합니다.전체적인 로직 (큰 틀)은 상위 클래스에 정의되어있지만 → 세부적인 구현은
구체적으로 어떤 인스턴스를 만들지를 서브 클래스가 정하는 패턴을 말한다.팩토리 메소드 패턴은, 기능혹은 역할에 따른 다양한 구현체가(Product) 가 존재하고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리(Creator)를 제공할 수 있다.<클래스 구
기존 코드를 건드리지 않고 새로운 기능을 추가하는 방법을 제안하는 패턴기능을 추가하기 위해선 기존에 클래스에 코드를 추가한다.그러나 그럴 수 없는 상황이 존재한다.예를 들어 SRP를 지키고 싶어서 더 이상 이 클래스가 가지고 있는 책임을 늘리고 싶지 않은 경우가 존재한
서로 관련있는 여러 객체를 만들어주는 인터페이스추상 팩토리 패턴은 팩토리 메소드 패턴과 팩토리 부분은 매우 유사하지만, 팩토리를 사용하는 Client에게 맞춰져 있다.추상 팩토리 패턴의 목적은 팩토리에서 인스턴스를 만들어 사용하는 Client 코드를 인터페이스 기반으로
캡슐화를 유지하면서 객체 내부 상태를 외부에 저장하는 방법.메멘토 패턴이란, 객체의 상태정보를 가지는 클래스를 따로 생성하여 객체 내부의 상태를 외부에 저장해놓고 저장해놓은 정보를 복원시킬 수 있도록 해주는 패턴이다."특정 시점"의 "객체의 상태" 를 외부에 저장하기