전략 패턴의 의미는 일련의 알고리즘을 정의하고 하나씩 캡슐화하고 교체 할 수 있도록하는 것입니다.
작은 예는 우리를 한눈에 분명하게 만들 수 있습니다.
jQuery의 애니메이션 방법을 회상합니다.
코드 사본은 다음과 같습니다.
$ (div) .animate ({ "왼쪽 : 200px"}, 1000, 'linear'); // 균일하게 움직입니다
$ (div) .animate ({ "왼쪽 : 200px"}, 1000, 'cubic'); // 입방 권력 유혹
이 두 코드는 DIV가 1000ms 이내에 오른쪽으로 200 픽셀을 이동하게 만듭니다. 선형 (일정한 속도) 및 입방 (Clums Power Easing)은 전략 모드의 패키지입니다.
또 다른 예를 들어 봅시다. 상반기에 나는 dev.qplus.com을 썼다. 많은 페이지에 즉각적인 확인 양식이있을 것이다. 양식의 각 구성원마다 다른 검증 규칙이 있습니다.
예를 들어, 이름 상자에서 비어 있고 민감한 단어 및 과도한 문자와 같은 상황을 확인해야합니다. 물론 문제를 해결하기 위해 다른 경우 3을 쓸 수 있지만, 이런 식으로 작성 코드의 확장 성과 유지를 상상할 수 있습니다. 양식에 더 많은 요소가 있고 더 많은 검증 상황이있는 경우 총체적으로 수백 개의 글을 쓰는 것은 불가능하지 않습니다.
따라서 더 나은 접근 방식은 정책 패턴을 사용하여 각 검증 규칙을 개별적으로 캡슐화하는 것입니다. 어떤 유형의 검증을 확인 해야하는 경우,이 정책의 이름 만 제공하면됩니다. 이와 같이:
코드 사본은 다음과 같습니다.
nameinput.addvalidata ({
NOTNULL : 사실,
더티 워드 : 사실,
최대 길이 : 30
})
NotNull, MaxLength 및 기타 방법은 검증을 통과했는지 여부를 표시하기 위해 True 또는 False를 균일하게 반환하면됩니다.
다음과 같이 코드를 복사하십시오. validatalist = {
notnull : function (value) {
반환 값! == ";
},
maxlength : 함수 (값, maxlen) {
return value.length ()> maxlen;
}
}
알 수 있듯이 다양한 검증 규칙이 쉽게 수정되고 서로 대체됩니다. 언젠가 제품 관리자가 너무 길고 캐릭터의 한계가 60 자로 변경되었다고 제안합니다. 작업을 완료하는 데 0.5 초 밖에 걸리지 않습니다.