공장 방법 패턴과 관련하여 다음 질문을 이해할 수있는 사람이 있습니까?공장에서의 공장 방법 패턴 #
this 링크를 샘플로 참조하십시오.
1. 팩토리 메서드 패턴에서 추상 클래스 Factory의 필요성은 무엇입니까? 정상적인 수업을 사용한다면 무엇입니까 ?
2. 코드 변경이 클라이언트에 영향을 미치지 않는다고 명시되어 있습니다. 그러나 새로운 클래스 product3이 추가 된 경우 적절한 클라이언트 코드에 변경 사항이 필요합니다 (아래 코드 참조). 그렇다면이 디자인 패턴의 장점은 무엇입니까?
들리는군요 딜런
는concreteFactoryforProduct1 factory = new concreteFactoryforProduct1();
우리는 심플한 디자인 패턴에 개방 - 폐쇄 원칙을 구현하지 못할 4.Why
Factory[] objFactories = new Factory[2];
objFactories[0] = new concreteFactoryforProduct1();
objFactories[1] = new concreteFactoryforProduct2();
foreach (Factory objFactory in objFactories)
{
Product objProduct = objFactory.GetProduct();
objProduct.GetDetails();
}
이상 objFactories[0] = new concreteFactoryforProduct1();
의 이익인가?
1) 인스턴스를 만드는 중 objFactories [0] = new concreteFactoryforProduct1(); 2) 당신이 설명하려고하는 것을 분명히하지 마십시오. 3) objFactories [0]를 사용해야하는 이유는 무엇입니까? 왜 클래스 인스턴스를 사용할 수 없습니까? 이점은 무엇입니까? –
(1) 예, 괜찮습니다. 새 Factory() -> 생성자를 호출하지 않습니다. 참조 유형 일뿐입니다. (2) 실제로 Factory1에서 만든 객체를 원한다면 인스턴스 (선호하는 Singleton)를 만들고 그 메소드를 호출하면됩니다. (3) 여기서, 두 배열의 콘크리트 팩토리를 같은 배열에 삽입하는 방법은 없습니까? –
당신의 요점을 이해했습니다. 그러나 당신은 패턴 구현과이 방법을 사용하는 이점을 묻는 메신저를 설명하고 있습니다. 이 예제에서는 배열 만 사용합니다. 공장 추상 인스턴스에 직접 할당하는 많은 예제를 가질 수 있습니다. –