디자인 모델 - 공장 모델 상세 설명 (비 추상 공장 모델)

1561 단어 디자인 모드
공장 모델 은 세 가지 로 나 뉜 다.
첫 번 째: 일반 공장 모델 은 하나의 공장 류 를 구축 하고 같은 인 터 페 이 스 를 실현 한 일부 유형 에 대해 인 스 턴 스 를 구축 하 는 것 이다.
우 리 는 작은 예 를 보 자.
먼저 우 리 는 인터페이스 클래스 를 쓰 고 그 안에 쓰 는 방법 을 정의 합 니 다.
public interface Writer {
	public void write();
}

그리고 우 리 는 실현 류 를 살 펴 보 자.
public class GangBi implements Writer {
	@Override
	public void write() {
		// to do something
	}
}

4. 567913. 그리고 공장 류 를 만 듭 니 다.
테스트 종류:
4. 567913. 위 는 간단 한 공장 모델 이다. 위 에 설명 한 바 와 같이 입력 한 문자열 이 틀 리 면 흔 한 대상 을 정확하게 볼 수 없고 이런 방법 도 우호 적 이지 않 기 때문에 이런 공장 모델 은 추천 하지 않 는 다.
두 번 째,
다 공장 모델: 공장 방법 을 개선 하고 여러 공장 방법 을 제공 하여 각각 대상 을 만 드 는 것 이다.
WriteFactory 수정 은 다음 과 같 습 니 다.
테스트 종류:
4. 567913. 이런 방법 은 위 에서 말 한 문 제 를 피 했다.
세 번 째,
정적 공장 모드: 공장 클래스 의 방법 을 수정 하고 모든 방법 을 정적 으로 바 꿉 니 다. 그러면 공장 방법 을 호출 할 때 인 스 턴 스 를 만 들 지 않 아 도 됩 니 다.
테스트 종류:
public class MaoBi implements Writer {
	@Override
	public void write() {
		// to do something
	}
}

전체적으로 보면 공장 모델 은 적당 하 다. 대량의 제품 이 만들어 야 하고 공 통 된 인터페이스 가 있 을 때 공장 모델 방법 을 통 해 만 들 수 있다.상기 세 가지 모델 에서 첫 번 째 는 문자열 이 잘못 지면 인 스 턴 스 생 성 이 성공 하지 못 할 수 있 습 니 다. 세 번 째 는 두 번 째 에 비해 공장 방법 인 스 턴 스 를 만 들 지 마 십시오. 따라서 대부분 상황 에서 세 번 째 정적 공장 모델 을 사용 하 는 것 을 추천 합 니 다.
public class WriteFactory {
	//       ,  :       ,        
	public Writer produce(String type) {
		if ("gb".equals(type)) {
			return new GangBi();
		} else if ("mb".equals(type)) {
			return new MaoBi();
		} else {
			return null;
		}
	}
}

좋은 웹페이지 즐겨찾기