"팩토리 메소드 패턴"의 두 판 사이의 차이

39번째 줄: 39번째 줄:


==같이 보기==
==같이 보기==
*[[메소드 오버로딩]]
{{z컬럼3|
*[[템플릿 메소드 패턴]]
* [[DAO]]
*[[싱글턴 패턴]]
* [[싱글턴 패턴]]
*[[컴포지트 패턴]]
* [[디자인 패턴]]
*[[이터레이터 패턴]]
* [[의존성 역전]]
*[[디자인 패턴]]
* [[DAOFactory]]
**[[헤드 퍼스트 디자인 패턴]]
* [[컴포지트 패턴]]
*[[의존성 역전]]
* [[이터레이터 패턴]]
*[[추상 팩토리 패턴]]
* [[메소드 오버로딩]]
*[[DAO]]
* [[추상 팩토리 패턴]]
*[[DAOFactory]]
* [[템플릿 메소드 패턴]]
}}


==주석==
==주석==

2022년 3월 31일 (목) 09:36 판

1 개요

factory method pattern; factory method, factory pattern
팩토리 메소드 패턴, 팩토리 메서드, 팩토리 패턴
  • 하위클래스에서 인스턴스를 생성하도록 하는 구조
  • 공장에서 제품을 만들어내듯, OO공장 인스턴스가 OO을 만들어내는 구조
  • 서브클래스에서 오브젝트 생성 방법과 클래스를 결정하도록 강제하는 구조
  • 추상 단계[1]에서는 생성하려는 객체의 클래스를 정확히 지정하지 않는다.
  • ConcreteCreator 클래스에 오브젝트 생성을 맡긴다.
  • 팩토리 메소드 패턴은 템플릿 메소드 패턴의 특수한 경우이다.

 

2 예제 (java)

public class Main {
	public static void main(String[] args) {
		SedanFactory sedanFactory = new SedanFactory();
		Car car = sedanFactory.makeCar();
		System.out.println("Type: " + car.getType() );
	}
}

interface CarFactory {
	public Car makeCar();
}

interface Car {
	public String getType();
}

class SedanFactory implements CarFactory {
	public Car makeCar() { return new Sedan(); }
}

class Sedan implements Car {
	public String getType() { return "Sedan"; }
}

3 같이 보기

4 주석

  1. interface 또는 abstract class

5 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}