JS 디자인 모델 의 전략 모델 개념 과 용법 분석

본 논문 의 사례 는 JS 디자인 모델 의 전략 모델 개념 과 용법 을 서술 했다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
정책 모드 의 개념 참조:
소프트웨어 개발 에서 도 비슷 한 상황 을 자주 만 나 특정한 기능 을 실현 하 는 데 여러 가지 알고리즘 이나 전략 이 있 기 때문에 우 리 는 환경 이나 조건 에 따라 서로 다른 알고리즘 이나 전략 을 선택 하여 이 기능 을 완성 할 수 있다.
예 를 들 어 찾기,정렬 등 자주 사용 하 는 방법 은 하 드 코딩(Hard Coding)이 한 종류 에 있 습 니 다.만약 에 여러 가지 검색 알고리즘 을 제공 해 야 한다 면 이 알고리즘 을 한 종류 에 쓸 수 있 습 니 다.이 종류 에서 여러 가지 방법 을 제공 하고 모든 방법 은 구체 적 인 검색 알고리즘 에 대응 할 수 있 습 니 다.물론 이 검색 알고리즘 을 하나의 통 일 된 방법 에 봉 하여 if...else...또는 case 등 조건 판단 문 구 를 통 해 선택 할 수 있 습 니 다.
이 두 가지 실현 방법 을 우 리 는 모두 하 드 인 코딩 이 라 고 할 수 있다.만약 에 새로운 검색 알고리즘 을 추가 하려 면 패 키 징 알고리즘 류 의 소스 코드 를 수정 해 야 한다.검색 알고리즘 을 바 꾸 려 면 클 라 이언 트 호출 코드 도 수정 해 야 합 니 다.
이 알고리즘 클래스 에 대량의 검색 알고리즘 을 패키지 하 였 는데,이러한 코드 는 비교적 복잡 하고 유지 보수 가 비교적 어 려 울 것 이다.만약 에 우리 가 이러한 전략 을 클 라 이언 트 에 포함 시 키 면 이런 방법 은 더욱 바람 직 하지 않 고 클 라 이언 트 프로그램 이 방대 하고 유지 하기 어 려 울 것 이다.만약 에 선택 할 수 있 는 알고리즘 이 대량으로 존재 하면 문제 가 더욱 심각 해 질 것 이다.
예 를 들 어 설명:
1.여행:우 리 는 자전거,자동차,기차,비행 기 를 탈 수 있 는 몇 가지 전략 을 고려 할 수 있 습 니 다.모든 전략 은 같은 결 과 를 얻 을 수 있 지만 서로 다른 자원 을 사용 했다.
전략 을 선택 하 는 근 거 는 비용,시간,도 구 를 사용 하 는 것 과 모든 방식 의 편리 정도 이다.
2.한 쇼핑 몰 에서 노동절 에 행 사 를 했 기 때문에 도서 류 상품 은 구 매 금액 에 따라 다음 과 같은 할인 전략 을 한다.
1,구 매 만 199 원 할인
2,구 매 만 399 원 할인
3.599 위안 이상 구 매 시 30%할인 해 드 립 니 다.

function BookStrategy() {
 this.calcPrice = function( price ) {
 console.log("    = " + price);
 }
}
function BookCalc9Strategy() {
 this.calcPrice = function( price ) {
 console.log("   :"+ price +"; 9  :" + (price * 0.9));
 }
}
function BookCalc8Strategy() {
 this.calcPrice = function( price ) {
 console.log("   :"+ price +"; 8  :" + (price * 0.8));
 }
}
function BookCalc7Strategy() {
 this.calcPrice = function( price ) {
 console.log("   :"+ price +"; 7  :" + (price * 0.7));
 }
}
function PriceCalc( _strategy ) {
 this.strategy = _strategy;
 this.getPrice = function( price ) {
 return this.strategy.calcPrice( price );
 }
}
function Client() {
 var price = 100;
 var priceCalc = null;
 if ( 199 <= price && price < 399 ) {
 priceCalc = new PriceCalc(new BookCalc9Strategy());
 } else if ( 399 <= price && price < 599 ) {
 priceCalc = new PriceCalc(new BookCalc8Strategy());
 } else if ( 599 <= price ) {
 priceCalc = new PriceCalc(new BookCalc7Strategy());
 } else {
 priceCalc = new PriceCalc(new BookStrategy());
 }
 priceCalc.getPrice(price);
}
Client();

실행 결과:

더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,,,,
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기