GOF 조금 혼란 스러울 수 있으며, 공장 방법. 어느 것이 어느 쪽인지 확실하지 마십시오. 전체 텍스트가 없으면 당신이 말하는 것을 말하기 어렵습니다.
일반적으로 생성하는 팩토리 유형 만이 메소드에 의해 반환되는 값을 결정합니다. 피자 팩토리를 가지고 있다면 다른 피자가 다른 피자를 반환합니다. 그러나 팩토리는 어떤 메소드를 만들지를 결정합니다. 이것은 물론 어떤 방법으로 제한됩니다. 왜냐하면 어떤 팩토리를 사용할 것인지 선택하는 것 외에는 무엇이 생성되는지에 영향을 미치지 않기 때문입니다. 그러나이 변형을 사용하는 프레임 워크에서 전체 아이디어입니다. 공장에서는 옵션을 손에서 떼어 낼 수 있으므로 선택할 책임이 없습니다. 기본적으로 당신은 '당신이 가진 것을 내게주세요'라고 말합니다. 예 : 페퍼로니 피자주세요. 그러나 공장에서는 사용하는 공장에 따라 뉴욕 페퍼로니 피자 또는 여분의 페퍼로니 피자를 반품 할 수 있습니다.
팩토리가 전략과 같이 작동하는 경우가 있습니다. 당신은 그것이 무엇을하는지 알고 싶지 않지만, 당신은 어떤 유형을 받기를 원하는지 말할 수 있기를 원합니다. 유형에는 공장이 작업 할 수있는 인터페이스가 있거나 공장 자체가 인터페이스를 필요로하지 않는 단순해야합니다. 여기에서는 '이 유형의 인스턴스를 제공하고 인스턴스를 사용하여 일반적으로하는 모든 작업을 수행하십시오'라고 말합니다. 예 : 여분의 치즈와 함께 피자를 여기에두고 싶습니다.
희망이 도움이됩니다.
그래서 항상 공장에 매개 변수를 전달해야한다는 의미입니까? – Sandbox
아니요, 확실히 아닙니다. 나는 당신 공장이하는 일과 당신이 그것을 어떻게 정의하고 싶은지에 달려 있다고 말할 수 있습니다. 항상 단일 유형의 객체를 만드는 경우 ... param이 필요하지 않습니다. –
죄송합니다. 추상 팩토리가 단일 유형의 객체를 만드는 경우 추상 팩토리로 간주됩니까? – Sandbox