Java/Design Patterns 2

[자바 디자인 패턴] 이터레이터 패턴

문제 프로그래밍을 하다보면 반복문을 많이 사용한다. 그러나 반복문이 사용되는 목적은 다양한다. 일정 횟수를 반복하는 경우도 있고 탐색을 위해 반복하는 경우도 있다. 또는 모든 요소를 수정하는 것이 목적일 수 있다. 이때 반복의 대상이 어떠냐에 따라 다양한 방식으로 반복문을 만들어야 한다. 그러면 우리는 이런 생각을 할 수 있다. 어떻게 하면 반복문을 쉽게 만들 수 있을까? 이터레이터 패턴이란? 위와 같은 문제를 해결할 수 있는 디자인 패턴이 바로 이터레이터(iterator) 패턴이다. 이터레이터 패턴은 반복에 사용되는 요소를 추상화한 후 이를 일반화한 패턴이다. 예를 들어 다음과 같은 코드가 주어진다고 해보자. for(int i = 0; i < 10; i++) { ... } 여기서 반복을 제어하는 변수는..

[자바 디자인 패턴] 싱글톤 패턴

문제 지금 게임의 환경 설정에 대한 부분을 구현하고 있다. 환경 설정은 그래픽, 소리와 같이 게임의 전반적인 요소에 대한 정보를 가지고 있기 때문에 모든 영역에서 환경 설정에 대한 정보를 제공할 수 있어야 한다. 또한 여러 개의 환경설정이 동시에 존재하면 일관성에 문제가 생기기 때문에 환경 설정은 한 개만 존재해야한다. 이를 해결하려면 어떻게 해야 할까? 싱글톤 패턴이란? 싱글톤 패턴이란 클래스에 인스턴스가 하나만 존재하게 만드는 것이다. 일반적으로 클래스를 생성한다는 것은 여러 개의 인스턴스를 생성하려는 목적으로 만들지만 데이터베이스에 접속하기 위한 클래스를 만든다고 가정했을 때 여러 인스턴스가 동시에 데이터베이스에 접근하도록 한다면 문제가 생길 것이다. 이런 문제를 해결하기 위해 오직 하나의 인스턴스..