javascript 디자인 모델 C 교체 기 모델 원리 와 용법 사례 분석
소개:교체 기 모델 은 사용 빈도 가 매우 높 은 디자인 모델 로 교체 기 를 도입 함으로써 데이터 의 옮 겨 다 니 는 기능 을 취 합 대상 에서 분리 할 수 있다.교체 기 모드 는 집합 대상 의 요 소 를 순서대로 방문 하 는 데 사용 되 며 집합 대상 의 바 텀 표 시 를 알 필요 가 없다.
정의:취 합 대상 에 접근 하 는 방법 을 제공 합 니 다.이 대상 의 내부 표 시 를 노출 하지 않 고 커서(Cursor)라 는 별명 을 가 집 니 다.교체 기 모드 는 대상 행동 형 모델 이다.
장면:우 리 는 백가성 의 교체 기 를 만 들 었 다.
예시:
function NameRepository(){
var names = [' ',' ',' ',' '];
this.getIterator = function(){
return new NameIterator();
}
function NameIterator(){
var index = 0;
//
this.hasNext = function(){
return index < names.length;
}
//
this.first = function(){
index = 0;
}
//
this.currentItem = function(){
return names[index];
}
this.next = function(){
if(this.hasNext()){
return names[index++]
}
return null;
}
}
}
var nameRepository = new NameRepository();
for(var iter = nameRepository.getIterator(); iter.hasNext();){
console.log(iter.next())
}
//
//
//
//
예 를 들 어 Nameiterator 는 구체 적 인 교체 기 라 고 부 릅 니 다.취 합 대상 을 옮 겨 다 니 며 커서 index 를 통 해 취 합 대상 의 현재 위 치 를 기록 합 니 다.커서 는 보통 위 치 를 나타 내 는 비 마이너스 정수 입 니 다.주의해 야 할 것 은 교체 기의 인터페이스 디자인 이 매우 중요 하 다 는 것 이다.한편 으로 는 여러 가지 조작 요 구 를 충분히 만족 시 켜 야 하고 다른 한편 으로 는 많은 방법 을 포함 해 서 는 안 된다.
교체 기 모드 요약:
장점:
*취 합 대상 을 다른 방식 으로 옮 겨 다 니 는 것 을 지원 합 니 다.같은 취 합 대상 에서 여러 가지 옮 겨 다 니 는 방식 을 정의 할 수 있 습 니 다.
*교체 기 는 취 합 류 를 간소화 하고 기 존의 취 합 대상 은 자체 적 으로 데 이 터 를 옮 겨 다 니 는 방법 을 제공 하지 않 아 도 됩 니 다.
단점:
*교체 기 모드 는 데 이 터 를 저장 하고 데 이 터 를 옮 겨 다 니 는 역할 을 분리 하여 시스템 의 복잡성 을 어느 정도 증가 시 킵 니 다.
*교체 기 는 디자인 이 어렵 기 때문에 확장 성 을 충분히 고려 해 야 합 니 다.
적용 필드:
*집합 대상 의 내용 을 방문 하여 내부 표 시 를 드 러 내지 않 아 도 됩 니 다.
*집합 대상 에 게 다양한 스 트 리밍 방식 을 제공 해 야 합 니 다.
*서로 다른 집합 구 조 를 편리 하 게 하기 위해 통 일 된 인 터 페 이 스 를 제공 하고 서로 다른 집합 구조 에 서로 다른 이동 방식 을 실현 한다.
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화과JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.