1. 팩토리 메서드 패턴이란?

  • 부모 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴
  • 자식 클래스가 어떤 객체를 생성할지 결정하도록 하는 패턴
  •  객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브 클래스가 내리도록 한다.

 


 

2. 팩토리 메서드 패턴 예시

Phone 인터페이스

public interface Phone {
	void turnOn();
}

IPhone 클래스

public class IPhone implements Phone {
	@Override
	public void turnOn() {
		System.out.println("IPhone turn on");
	}
}

Galaxy 클래스

public class Galaxy implements Phone {
	@Override
	public void turnOn() {
		System.out.println("Galaxy turn on");
	}
}

PhoneFactory 클래스

public class PhoneFactory {
	public static Phone getPhone(String company) {
		if ("Apple".equalsIgnoreCase(company)) retrn new IPhone();
		else if ("Samsung".equalsIgnoreCase(company)) retrn new Galaxy();

		return null;
	}
}

getPhone 메서드를 이용하여 Phone의 서브클래스에 대한 정보를 알지 못한 채 인스턴스를 생성할 수 있게 된다.

 

Main 클래스

public class Main {
	public static void main(String[] args) {
		Phone iPhone = PhoneFactory.getPhone("Apple");
		Phone galaxy = PhoneFactory.getPhone("Samsung");

		iPhone.turnOn();
		galaxy.turnOn();
	}
}

// 출력
// IPhone turn on
// Galaxy turn on

'디자인 패턴 > 생성 패턴' 카테고리의 다른 글

싱글톤 패턴 (Singleton Pattern)  (0) 2021.08.26

+ Recent posts