설계 모델 의 공장 모델 에 깊이 들 어가 기 쉽다.

3218 단어 디자인 모드
설계 모델 의 공장 모델 에 깊이 들 어가 기 쉽다.
 
  업무 경력 이 계속 증가 함 에 따라 모든 프로그래머 는 일반 프로그래머 에서 고급 또는 베테랑 프로그래머 로 성장 하 는 과정 을 피 할 수 없다.이 공사 에서 더욱 깊이 있 는 지식 을 많이 배 워 야 한다. 그 중에서 코드 구 조 를 대상 으로 하 는 디자인 과 최적화 사상 을 포함한다. 이런 사상 을 키 우 는 전 제 는 바로 디자인 모델 을 배 워 야 한 다 는 것 이다.앞으로 한 동안 저 는 디자인 모델 의 경험 을 하나씩 공유 할 것 입 니 다.여러분 의 디자인 모델 을 배 우 는 데 도움 이 되 기 를 바 랍 니 다.공장 모드 공장 모드 정의: 대상 을 만 드 는 표준 인 터 페 이 스 를 제공 합 니 다.어떻게 사용 합 니까?      공장 모델 은 모든 시스템 에서 가장 많이 사용 되 는 디자인 모델 중 하나 여야 한다. 왜 공장 모델 이 가장 자주 사용 되 는 지 이 유 는 간단 하 다. 왜냐하면 공장 모델 의 역할 은 우리 의 코드 에 new 키워드 가 나타 나 한 대상 에 대한 생 성 을 대체 하 는 것 이기 때문이다. 공장 모델 은 바로 대상 을 만 드 는 것 이다.일반적인 상황 에서 우 리 는 대상 을 만 들 고 다음 과 같은 코드 를 사용 합 니 다. Node node = new Node ();만약 에 구조 적 인 파 라 메 터 를 입력 해 야 한다 면 만 든 코드 는 다음 과 같 습 니 다. Node Node = new Node (매개 변수);      그러나 많은 상황 에서 우리 가 대상 을 만 드 는 것 은 간단 한 매개 변수 에 속 하지 않 고 완성 할 수 있 는 것 이 아니다. 예 를 들 어 데 이 터 를 조회 하거나 프로필 을 통 해 정 보 를 얻 는 등 구조 함수 에서 비교적 많은 기능 을 실현 해 야 하기 때문에 코드 를 이용 하지 않 고 우아 하 게 디자인 하면 코드 가 매우 보기 흉 하 다.왜 이런 상황 에서 코드 가 매우 보기 싫다 고 말 합 니까?많은 사람들 이 알 고 있 듯 이 프로 그래 밍 에서 자바 는 대상 을 대상 으로 하 는 원칙 을 제창 하고 대상 을 대상 으로 하 는 원칙 은 분파 와 포장 을 제창한다.가능 한 한 긴 코드 세그먼트 를 각 단일 직책 의 방법 이나 인터페이스 에 나 누 어 실현 하 는 것 도 자바 에서 제창 하 는 단일 직책 원칙 이다.이렇게 하면 코드 수정의 난이 도 를 낮 추고 코드 를 수정 해 야 한다 면 한 곳 만 수정 해 야 하 며 한 발 을 끌 고 온몸 을 움 직 이지 않 는 다.다음은 몇 가지 예 를 들 어 공장 방법의 사용 을 설명 한다. 먼저 Node 를 만 드 는 공장 류 를 구축한다.
public class NodeFactory {
	
	public Node create(int type) {
		if (type == 1) {
			return new NodeA();
		} else if (type == 2) {
			return new NodeB();
		} else {
			throw new RuntimeException("Error Type: " + type);
		}
		
	}
}

     이렇게 해서 Node 대상 을 초기 화 하 는 직접적인 장점 은 Node 를 한 곳 으로 초기 화하 여 실현 해 야 한 다 는 것 이다. 그러면 Node 대상 을 초기 화 하 는 과정 을 편리 하 게 수정 할 수 있다.마찬가지 로 오류 가 발생 할 확률 을 줄 였 고, 반드시 들 어가 야 할 일 은 적 을 수록 실 수 를 하기 가 쉽 지 않다.공장 모델 은 두 가지 로 나 뉜 다. 공장 방법 모델 과 추상 적 인 공장 모델 이다.     위의 예 에서 우리 가 실현 한 것 은 공장 방법 모델 이다. 만약 에 설립 대상 의 복잡 도가 높 아 지면 이 럴 때 추상 적 인 공장 모델 을 사용 해 야 한다.구체 적 으로 코드 를 살 펴 보 자. 여기 서 Node 에 실현 류 NodeA 와 NodeB 가 있다 고 가정 하면 Node 2 에 도 두 가지 실현 류 Node2A 와 Node2B 가 있다. 그러면 우 리 는 위 에 열거 한 Factory 를 추상 적 인 공장 류 로 바 꾸 어 추상 적 인 공장 모델 을 실현 한다.
public abstract class AbstractFactory {
	
	public abstract Node createNode();
	
	public abstract Node2 createNode2();
	
	
	class NodeAFactory extends AbstractFactory {

		@Override
		public Node createNode() {
			return new NodeA();
		}

		@Override
		public Node2 createNode2() {
			return new Node2B();
		}
		
	}
	
	class NodeBFactory extends AbstractFactory {

		@Override
		public Node createNode() {
			return new NodeB();
		}

		@Override
		public Node2 createNode2() {
			return new Node2B();
		}
		
	}
} 

   위 에서 볼 때 우 리 는 NodeA 와 Node2A 를 각각 생산 하 는 추상 적 인 공장 과 NodeB 와 Node2B 를 생산 하 는 공장 을 실현 했다.이로써 우 리 는 공장 모델 의 사용 을 상세 하 게 소 개 했 는데, 이곳 의 예 는 단지 간단 한 실현 일 뿐이다.실제 적 으로 환경 을 생 성 하 는 시스템 에서 공장 모델 은 다른 모델 과 결합 하여 사용 할 수 있다. 예 를 들 어 향 원 모델 이다.이러한 실현 은 우리 가 후속 적 인 설명 에서 언급 할 수 있다.

좋은 웹페이지 즐겨찾기