디자인패턴

CS

이터레이터 패턴(Iterator Pattern)

이터레이터 패턴 행위 패턴 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해주는 방법을 제공해 주는 패턴 이터레이터 패턴을 사용하면 집합체 내에서 어떤 식으로 일이 처리되는지 몰라도 그 안에 들어있는 항목들에 대해서 반복작업을 수행할 수 있다. 보통 프로그래밍을 하면서 반복문을 돌리려면 for문을 사용한다. for (int i = 0; i < n; i++) { System.out.println(array[i]); } for 문의 초기화문에서 흔희 사용되는 변수 i는 배열이 주어질 때 각각의 요소에 차례대로 접근하기 위해 사용된다. 이렇게 사용되는 변수 i의 역할을 추상화한 것이 Iterator 패턴이다. 이터레이터 패턴 사용 예시 Iterator 집합체의 ..

CS

전략 패턴(Strategy Pattern)

소프트웨어 개발 과정에서 코드의 유연성과 재사용성은 매우 중요하다. 이를 위해 객체 지향 프로그래밍에서 다양한 디자인 패턴들이 개발되었는데, 그중에서도 전략 패턴은 유연한 소프트웨어 설계를 구현하는 핵심적인 기법 중 하나이다. 전략 패턴은 알고리즘을 독립적으로 정의하고, 실행 시에 필요한 알고리즘을 동적으로 변경할 수 있는 방법을 제공한다. 전략 패턴 전략 패턴은 알고리즘을 정의하는 인터페이스를 만들고, 이를 구체적인 알고리즘 클래스들로 구현하여 실행 시에 알고리즘들을 변경할 수 있도록 한다. 이를 통해 동일한 작업을 수행하는 여러 알고리즘들을 쉽게 추가하고 변경할 수 있다. 이를 통해 코드의 유연성과 확장성을 크게 향상할 수 있다. 아래와 같은 구조를 가진다. 시나리오는 간단하다. 쇼핑카드에 여러 가지..

CS

팩토리 메소드 패턴(Factory Method Pattern)

팩토리는 공장이란 뜻을 내포하고 있다. 따라서 팩토리 메서드 패턴도 무언가를 위한 공장이라 봐도 무방하다. 일반적으로 팩토리 메서드 패턴을 객체를 만들어내는 부분을 서브 클래스에 위임하는 패턴이라고 말할 수 있다. Factory Method Pattern 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브 클래스가 내린다. 객체 생성을 캡슐화하는 패턴이다. 아래 예시를 보면 쉽게 파악할 수 있다. 로봇이 있고, 이를 슈퍼로봇과 파워로봇으로 구체화할 수 있다. 로봇팩토리를 통해 로봇을 생산할 수 있다. 우선 간략한 구조는 이러하다. Robot(abstract class) ┗ SuperRobot ┗ PowerRobot RobotFactory(abstract c..

javajoha
'디자인패턴' 태그의 글 목록