PHP 전략 패턴
1. 전략 패턴은 무엇인가?
정의 : 알고리즘의 특정 세트의 동작이 특정 상황을 수용하기 위해, 예컨대 패키지 등 그들이 서로 대체 될 수 있으며,이 모델은 전략 패턴이다.
이해하기 간단한는 점이다 N이, 당신의 선택을위한 연습 결과는 기반 정책을 선택해야 얻을 수있다
2. 왜 전략 패턴을 사용합니까?
디자인 패턴이 사용되면, 우리의 코드 리던던시는 낮고, 결합의 정도는, 각각의 기능 모듈은 대응 정책을 수행한다 .
물론, 단점은 우리가 대응 전략 클래스를 만들어야하는 기능입니다,하지만 우리는 (ThinkPHP, Yii2가), 컨트롤러가 실제로 전략 디자인 패턴을 반영,보기에 해당하는 MVC 아키텍처의 포괄적 볼 수 있습니다.
3, 샘플 코드
비즈니스 현장
전기 공급 업체 사이트에서 사용자의 성별에 따라 서로 다른 상품을 표시합니다. 우리는 제품의 종류 (기능 showCategory ()) 및 광고 노출 보여주고있다 (기능 showAd을 ())
이행
먼저 우리는 인터페이스에 정의 된 메소드를 구현하는 인터페이스의 필요성을 정의해야합니다.
및 인터페이스 방법은 다른 클래스를 달성하도록 정의된다.
마지막으로, 사용자에 따라 다른 방법은 새입니다.
/ * * * @Purpose : 상위 인터페이스 * 후 UserInterface 인터페이싱 * / 인터페이스를 후 UserInterface { / * * * @purpose : 디스플레이 * 혼합 @return * / 공용 기능 showAd를 (); / * * * @purpose : 디스플레이 카테고리 * 혼합 @return * / 공용 기능 showCatetory () } / * * * @purpose : 남자 사용자가 사용자 인터페이스를 구현 * 클래스 MaleUser * / 클래스 MaleUser 유단 후 UserInterface { / * * * @purpose : 디스플레이 혼합 @return * * / 공용 기능 showAd () { 에코 "전자" ] } / * * * @purpose : 디스플레이 카테고리 * 혼합 @return * / 공용 기능 showCatetory () { 에코 "디지털 컴퓨터" ; } } / * * * @purpose : 여성 사용자가 사용자 인터페이스를 구현 * 클래스 FemaleUser * / 클래스 FemaleUser 구현 후 UserInterface { / * * * @purpose : 디스플레이 * 혼합 @return * / 공공 기능 showAd () { 에코 "화장품" ] } / * * * @purpose : 디스플레이 카테고리 * 혼합 @return * / 공용 기능 showCatetory () { 에코 "의류 분류" ; } } IF ( $ _GET [ '말레 ] ) { $ 사용자 = 새 새 MaleUser (); } 다른 { $ 사용자 = 새 새 FemaleUser (); } $ 사용자 -> showAd (); // 사용자의 성별에 따라 자신의 광고 콘텐츠를 표시합니다
4. 요약
전반적으로, 개발에 우리의 디자인 원칙은 다음과 같다 :
- 독립을 넣어 코드를 그 조합을 변경할 필요가 없습니다, 응용 프로그램은 장소의 변경을 요구할 수있다 찾기;
- 프로그래밍을위한 인터페이스가 아닌 프로그래밍의 실현을위한;
- 다목적 조합, 적은 상속.
:이 문서에는 캥거루 학습을 요약 재현 경우 소스 알려주십시오 https://www.cnblogs.com/chrdai/p/11184082.html을