디자인 모델 독서 노트 (5) - 세 가지 공장 모델 비교

2409 단어 디자인 모드
먼저 세 가지 공장 모델 부분의 주요 코드 (전체 코드 는 앞의 세 편의 블 로그) 를 보십시오.
 단순 공장 모드:
public class SampleFactory
{
	public static Animal createAnimal(String animalName){
		if("Tiger".equals(animalName))){
			return new Triger();
		}else if("Dolphin".equals(animalName)){
			return new Dolphin();
		}
	}
}

공장 방법 모드:
public interface Factory
{
	public Animal createAnimail();
}


public class Trigerfactory implements Factory
{
	public Animal createAnimal(){
		return new Triger();
	}
}

public class Dolphinfactory implements Factory
{
	public Animal createAnimal(){
		return new Dolphin();
	}
}

추상 공장 모드:
      ,          ;

public class AsiaFactory implements Factory
{
	public Triger createTriger(){
	    return new AsiaTriger();
	};
	public Dolphin createDolphin(){
		return new AsiaDolphin();
	};
}

      ,          ;

public class AfricaFactory implements Factory
{
	public Triger createTriger(){
	    return new AfricaTriger();
	};
	public Dolphin createDolphin(){
		return new AfricaDolphin();
	};
}

자세 한 차이 점: 
간단 한 공장: 하나의 상세 한 공장 은 조건 문 구 를 통 해 여러 제품 을 만 들 고 제품 의 설립 논 리 는 한 공장 류 에 집중 된다.client 는 서로 다른 파 라 메 터 를 공장 에 전달 하여 서로 다른 제품 을 만 드 는 목적 으로 신제품 을 추가 할 때 공장 류 를 바 꾸 고 제품 류 를 추가 해 야 하 며 OCP 원칙 에 부합 되 지 않 습 니 다.
공장 방법: 한 공장 이 하나의 제품 을 만 들 고 모든 상세 한 공장 은 추상 적 인 공장 에서 계승 한다.client 는 먼저 서로 다른 제품 의 공장 을 설립 한 다음 에 공장 에서 상세 한 제품 을 만 들 고 제품 의 설립 논 리 는 모든 상세 한 공장 류 에 분산 된다.client 는 추상 적 인 공장 과 추상 적 인 제품 에 만 의존 하고 상세 한 공장 과 상세 한 제품 이 신제품 을 추가 할 때 공장 류 와 제품 류 를 추가 하여 OCP 원칙 에 부합 해 야 한다.
추상 적 인 공장: 하나의 상세 한 공장 이 하나의 제품 족 을 만 들 고 하나의 제품 족 은 서로 다른 시리즈 제품 의 조합 이 며 제품 의 설립 논 리 는 모든 상세 한 공장 류 에 나 뉜 다.모든 상세 한 공장 은 같은 추상 적 인 공장 에서 물 려 받 았 다.client 는 서로 다른 제품 족의 공장 을 만 들 고 제품 족의 공장 에서 상세 한 제품 을 만 드 는 것 은 client 에 보이 지 않 습 니 다.새로운 제품 족 을 추가 할 때 는 OCP 원칙 에 맞 는 상세 한 공장 류 를 추가 해 야 한다.신제품 을 추가 할 때 상세 한 공장 류 와 제품 류 를 바 꾸 어야 한다. OCP 원칙 에 부합 되 지 않 고 '다 중 시리즈 대상 생 성' 의 수요 변화 에 대응 하지 않 으 면 추상 적 인 공장 모델 을 사용 할 필요 가 없다. 이때 간단 한 정태 공장 을 사용 할 수 있다.
상기 3 가지 모델 은 모두 client 로 하여 금 상세 한 제품 과 의 결합 에서 벗 어 나 게 하고 client 는 상세 한 제품 의 생산 방법 에 관심 을 가지 지 않 습 니 다.

좋은 웹페이지 즐겨찾기