소개하다
소프트웨어 시스템에서, 우리는 때때로 "복잡한 객체"의 생성에 직면하게되며, 이는 일반적으로 특정 알고리즘을 사용하여 각 부품의 하위 객체로 구성됩니다. 요구 사항의 변화로 인해이 복잡한 물체의 여러 부분은 종종 과감한 변화에 직면하지만이를 결합하는 알고리즘은 실제로 비교적 안정적입니다. 이 변화를 다루는 방법? "캡슐화 메커니즘"을 제공하여 시스템의 "안정적인 구조 알고리즘"을 필요에 따라 변경하는 것을 막기 위해 "복잡한 객체의 각 부분"의 변화를 분리하는 방법은 무엇입니까? 이것이 빌더 모델이 언급되는 것입니다.
빌더 패턴은 복잡한 물체의 구성을 표현에서 구분하여 동일한 시공 프로세스가 다른 표현을 생성 할 수 있도록 할 수 있습니다. 즉, 우리가 빌더 모드를 사용하는 경우, 사용자는이를 얻기 위해 빌드 할 유형을 지정해야하며 특정 구성 프로세스와 세부 사항을 알 필요는 없습니다.
텍스트
이 패턴은 비교적 간단합니다. 먼저 코드를 입력 한 다음 설명하십시오
코드 사본은 다음과 같습니다.
함수 getBeerByid (id, 콜백) {
// ID를 사용하여 데이터를 요청한 다음 데이터를 반환합니다.
Asyncrequest ( 'get', 'beer.uri? id =' + id, function (resp) {
// 콜백 호출 응답
콜백 (Resp.Responsetext);
});
}
var el = document.querySelector ( '#test');
el.addeventListener ( 'Click', GetBeerByIdBridge, False);
기능 getBeerByIdBridge (e) {
getBeerByid (this.id, function (맥주) {
Console.log ( '요청 된 맥주 :' + 맥주);
});
}
Builder의 정의에 따르면, 테이블 단계는 콜백입니다. 즉, 데이터를 얻은 후 데이터를 표시하고 처리하는 방법은 콜백 기능에 따라 다릅니다. 이에 따라 콜백 함수는 데이터를 처리 할 때 데이터를 얻는 방법에주의를 기울일 필요가 없습니다. jQuery의 Ajax 방법에서도 동일한 예를 볼 수 있습니다. 많은 콜백 함수 (예 : 성공, 오류 콜백 등)가 있으며 주요 목적은 책임을 분리하는 것입니다.
jQuery의 또 다른 예를 들어 봅시다 :
코드 사본은 다음과 같습니다.
$ ( '<div class = "foo"> bar </div>');
특정 HTML 객체가 생성되는 방식에 관계없이 HTML 문자를 전달하기 만하면됩니다.
요약
빌더 모델은 주로 "단계"에 "복잡한 객체를 구축하는 데"사용되며, 여기서 "단계"는 안정적인 알고리즘이며 복잡한 객체의 다양한 부분은 종종 변합니다. 장점은 빌더 모델의 "처리 프로세스"가 노출되어 빌더 모델을보다 유연하게 만들고 빌더 모델은 어셈블리 프로세스를 분해하고 특정 구성 요소를 생성하므로 각 구성 요소가 어떻게 조립되는지 신경 쓰지 않아도됩니다.