상세 컨텐츠

본문 제목

Simple Factory Pattern 배워보기

Java

by techbard 2014. 1. 16. 21:21

본문

반응형

HEAD FIRST DESIGN PATTERNS에서는 이건 패턴이라고도 하지 않고 그냥 관용구라고 한다.

 

배운걸 정리하는 의미에서 끄적여 본다.

 

조건에 따라 각기 다른 클래스를 실행하고자 한다면 말하자면 심플 팩토리 패턴을 쓴다.

 

1. 역시 인터페이스를 먼저 만든다.

 

public interface IFactory {
 public void print();
}

 

2. 기능을 달리하고자하는 두 개 클래스를 만든다. 이 클래스는 1번 인터페이스를 구현한다.

 

public class AClass implements IFactory {

 @Override
 public void print() {
  System.out.println("AClass");
 }
}

 

public class BClass implements IFactory {

 @Override
 public void print() {
  System.out.println("BClass");
 }
}

 

3. Application 클래스를 만들고 이것은 메소드 호출만 담당한다.

 

public class Application {
 public Application(IFactory factory) {
  factory.print();
 }
}

 

4. 이 클래스들을 테스트 할 수 있는 main 클래스를 만든다.

 

public class ApplicationRunner {

 public static void main(String[] args) {
  new Application(factory());
 }
 
 public static IFactory factory() {
  int sys = 0;
  if (sys == 0) {
   return new AClass();
  } else {
   return new BClass();
  }
 }
}

 

결과:

AClass (sys = 0 인 경우)

BClass (sys = 1 인 경우)

 

뭐하러 이렇게 복잡하게 하냐고 할 수도 있을텐데 Abstract Factory Pattern하고 유사한 구조를 가져보려고 그랬다. ㅋㅋ

 

 

SimpleFactoryPattern.zip

 

반응형

관련글 더보기

댓글 영역