javascript 디자인 모드 C 명령 모드 원리 와 용법 실례 분석
소개:명령 모드 는 데이터 구동 의 디자인 모델 로 요청 을 명령 형식 으로 대상 에 감 싸 고 호출 대상 에 게 전달 합 니 다.명령 모드 의 핵심 은 명령 류 를 도입 하여 명령 류 를 통 해 발송 자 와 수용자 의 결합 도 를 낮 추 는 것 이다.
정의:요청 을 대상 으로 밀봉 하여 서로 다른 요청 으로 고객 을 매개 변수 화 할 수 있 습 니 다.요청 대기 열 이나 요청 로 그 를 기록 하고 취소 가능 한 동작 을 지원 합 니 다.명령 모드 는 동작(Action)모드 나 트 랜 잭 션(Transaction)모드 라 는 별명 을 가 진 대상 행동 형 모드 입 니 다.
장면:우 리 는 주식 을 매매 하 는 장면 을 통 해 명령 모델 을 실현 한다.
예시:
var Stock = function(){
this.name = 'baidu';
this.quantity = 100;
this.buy = function(){
console.log(' :' + this.quantity + ' ' + this.name);
}
this.sell = function(){
console.log(' :' + this.quantity + ' ' + this.name);
}
}
var BuyStock = function(stock){
this.stock = stock;
this.execute = function(){
this.stock.buy();
}
}
var SellStock = function(stock){
this.stock = stock;
this.execute = function(){
this.stock.sell();
}
}
var Broker = function(){
this.orderList = [];
this.takeOrder = function(order){
this.orderList.push(order);
}
this.placeOrders = function(){
this.orderList.map(function(item){
item.execute();
})
this.orderList = [];
}
}
var stock = new Stock();
var buyStock = new BuyStock(stock);
var sellStock = new SellStock(stock);
var broker = new Broker();
broker.takeOrder(buyStock);
broker.takeOrder(sellStock);
broker.placeOrders();
// :100 baidu
// :100 baidu
이 예 에서 SellStock,BuyStock 은 명령 류 로 실제 명령 을 수행 합 니 다.Broker 는 명령 을 받 고 지정 한 시기 에 명령 을 수행 합 니 다.Stock 은 요청 수용체,뒤 돌아 보면 sellstock,buystock 은 명령 을 봉 인 된 대상 입 니 다.대상 의 execute 방법 을 통 해 이 명령 을 수행 할 수 있 습 니 다.placeOrders 확장 방법 을 통 해 요청 대기 열 이나 요청 로 그 를 기록 하고 취소 가능 한 작업 을 지원 할 수 있 습 니 다.
명령 모드 요약:
장점:
*시스템 결합 도 감소
*새로운 명령 은 시스템 에 쉽게 들 어 갑 니 다
단점:
*명령 모드 를 사용 하면 일부 시스템 에 구체 적 인 명령 클래스 가 너무 많 을 수 있 습 니 다.
적용 필드:
*시스템 은 요청 호출 자 와 요청 수신 자 를 결합 해제 해 야 합 니 다.
관심 있 는 친 구 는 온라인 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에 따라 라이센스가 부여됩니다.