싱글톤 패턴 시스템 런타임이나 환경 셋팅에 대한 정보등 클래스 인스턴스가 여러개일 때 문제가 발생할 수 있는 요구사항이 있다. 이럴 경우 싱글톤 패턴을 활용한다면 인스턴스를 오직 한개만 만들어 제공할 수 있다. 우선 가장 기본적인 싱글톤 예제를 보자. public class Settings { private static Settingsinstance; private Settings() { } public static Settings getInstance() { if (instance== null) { instance= new Settings(); } return instance; } } 싱글톤 구현 방법중에서 이러한 예제를 가장 많이 보았을 것 같다. 하지만 이 예제는 멀티스레드 환경을 전혀 고려하지 못..
팩토리 메소드 패턴 - 팩토리는 공장을 나타내는 단어. -> 뭔가를 생산. - 객체를 직접 new 하지 않고 서브클래스에 위임해서 생성하는 기법. - 객체를 만들어내는 팩토리 패턴. - 팩토리 메소드에서는 주로 템플릿 메소드 패턴(하나의 알고리즘을 여러 단계의 알고리즘을 두고 사용하는 메소드 패턴)이 사용됨. 예제 분석 1. 게임아이템과 아이템 생성 구현 - 아이템을 생성하기 전 데이터베이스에서 아이템 정보 요청 - 아이템 생성 후 아이템 복제 등의 불법을 방지하기 위해 데이터베이스에 아이템 생성정보 남김 2. 아이템을 생성하는 주체를 ItemCreator로 이름짓기 3. 아이템은 Item이라는 interface로 다룰 수 있도록함. - item은 use 함수를 기본 함수로 갖고 있습니다. 4. 현재 아..
템플릿 메소드 패턴 - 알고리즘 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴 - 구현하려는 기능이 일정한 프로세스가 존재한다. - 구현하려는 기능이 사용하는 알고리즘이 추후 변경가능성이 있다. 템플릿 메소드 패턴을 위한 단계 1. 구현하려는 기능의 필요한 여러가지 단계를 확인. 2. 각각의 단계를 메소드로 분리 선언 3. 수행할 템플릿 메소드를 생성. 4. 하위 클래스에서 구현. 예제로 확인 추상 클래스 선언! public abstract class AbstGameConnectHelper { //외부에 노출되면 안됨. //보안과정 protected abstract String doSecurity(String string); //인증과정 protected a..
Adapter 패턴 - 한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환한다. - 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 예제 public class Math { //두배 public static double twoTime(double num) {return num*2;} //절반 public static double half(double num) {return num/2;} //강화된 알고리즘으로 빠른 두배 계산. public static Double doubled(Double d) {return d*2;} } - 다음과 같이 이미 구현된 기능이 존재할 때, Math 클래스에 정의된 알고리즘을 이용하여 float 타..
Strategy 패턴 - 여러 가지의 알고리즘을 하나의 추상적인 접근점을 만들어서 접근점을 통해 교환 가능하도록 구성하는 자바의 디자인 패턴 - 주로 게임 개발에서 무기를 교체하거나 장비를 교체하거나 할 때 사용한다고 한다. Strategy 패턴을 이해하기 위해서는 두가지를 면저 알아두어야 한다. 1. 인터페이스 2. 델리게이트 인터페이스 - 인터페이스는 추상적인 어떤 것이다. 칼, 검, 활의 추상적인 어떤 것은 무기가 될 것이고, 신발, 바지, 상의의 추상적인 어떤 것은 장비가 될 것이다. 다른 의미로는 굉장히 의미가 다양하게 쓰이는 언어라고 생각이 들어 Strategy 패턴에서 사용하고 있는 의미로만 설명되었다. 델리게이트 - delegate(위임하다, 떠넘기다) 라는 영어단어로 개발 영역에서 많이 ..