2010-04-06 5 views
2

Activator.CreateInstance와 factory의 차이점은 무엇입니까? 교환 가능하게 사용할 수 있습니까? 아니면 우리가 공장 패턴이 필요한가요?Activator.CreateInstance vs Factory Pattern

+0

Activator.CreateInstance는 유형에서 사용자의 개체를 인스턴스화합니다. 그것은 Factory 패턴에 매우 잘 통합 될 수 있습니다. –

답변

3

공장 패턴은 상위 패턴입니다. 개체 생성시 발생할 수있는 몇 가지 문제를 해결할 수있는 구조를 제공합니다.

객체의 생성은 종종 는 구성 객체 내에 포함하는 것이 적절하지 복잡한 과정을 필요로 Wikipedia에서 인용합니다. 개체의 창조는 추상화의 충분한 수준을 제공하지 않을 수 있습니다 구성 개체에 액세스 할 수 없습니다 정보를 요구할 수있다, 코드의 중요한 중복 될 수 있습니다, 또는 그렇지 않으면 구성 객체의 우려의 일부가 될 수 없습니다.

객체의 생성에 필요한 프로세스의 일부

객체, 의 수명을 관리, 생성되는 개체 을 결정하고 전문 축적과 개체의 눈물 다운 문제를 관리 을 포함한다.

Activator.CreateInstance는 이러한 문제를 해결하지 못하기 때문에 유형의 새 인스턴스를 만들 수 있습니다. 위와 같은 문제가 없으면 (그리고 "팩토리 패턴"의 많은 용도가 그러한 문제의 컨텍스트에 있지 않음) Activator.CreateInstance가 문제가되지 않습니다.

3

Activator.CreateInstance은 해당 유형의 기본 생성자를 사용하여 지정된 유형의 인스턴스를 만드는 정적 메소드입니다.

factory pattern은 생성 될 개체의 정확한 클래스를 지정하지 않고 개체 (제품)를 만드는 문제를 다룹니다.

Activator.CreateInstance을 팩터 리 패턴 내에서 "사용"하여 다른 유형의 객체를 반환 할 수 있습니다. See this example. create a generic factory 이용 가능 Activator.CreateInstance