> 백엔드 개발 > PHP 튜토리얼 > PHP 디자인 패턴 전략 패턴

PHP 디자인 패턴 전략 패턴

WBOY
풀어 주다: 2016-07-29 09:01:11
원래의
963명이 탐색했습니다.

전략 패턴:

특정 상황에 맞게 특정 동작 및 알고리즘 세트를 클래스로 캡슐화합니다.

실용적인 적용 예(전자 상거래 웹 사이트 시스템인 경우) 여성 사용자는 다른 제품 카테고리로 이동해야 하며 모든 광고 슬롯에는 다른 광고가 표시됩니다.

UserStrategy.php

<?<span>php
namespace Baobab;

</span><span>interface</span><span> UserStrategy{
    </span><span>function</span><span> showAd();
    </span><span>function</span><span> showCategory();
}
</span>?>
로그인 후 복사

FemaleUserStrategy.php

<?<span>php
namespace Baobab;

</span><span>class</span> FemaleUserStrategy <span>implements</span><span> UserStrategy{
    </span><span>function</span><span> showAd(){
        </span><span>echo</span> '2016新款女装'<span>;
    }
    </span><span>function</span><span> showCategory(){
        </span><span>echo</span> '女装'<span>;
    }
}

</span>?>
로그인 후 복사

MaleUserStrategy.php

<?<span>php
namespace Baobab;

</span><span>class</span> MaleUserStrategy <span>implements</span><span> UserStrategy{
    </span><span>function</span><span> showAd(){
        </span><span>echo</span> 'Iphone6s plus'<span>;
    }
    </span><span>function</span><span> showCategory(){
        </span><span>echo</span> '电子产品'<span>;
    }
}

</span>?>
로그인 후 복사

Page.php

<span><span>namespace Baobab;</span><br>class</span><span> Page{
     </span><span>protected</span><span>$strategy</span><span>;
     </span><span>function</span><span> Index(){
         </span><span>$this</span>->strategy-><span>showAd();
         </span><span>echo</span> '<br/>'<span>;
         </span><span>$this</span>->strategy-><span>showCategory();
     }
     </span><span>function</span> setStrategy(\Baobab\UserStrategy <span>$strategy</span><span>){
         </span><span>$this</span>->strategy = <span>$strategy</span><span>;
     }
}
</span>
로그인 후 복사

index.php

<span>$page</span> = <span>new</span><span> Baobab\Page();
</span><span>if</span> (<span>isset</span>(<span>$_GET</span>['female'<span>])){
    </span><span>$strategy</span> = <span>new</span><span> Baobab\FemaleUserStrategy();
}</span><span>else</span><span>{
    </span><span>$strategy</span> = <span>new</span><span> Baobab\MaleUserStrategy();
}
</span><span>$page</span>->setStrategy(<span>$strategy</span><span>);
</span><span>$page</span>->Index();
로그인 후 복사

전략 모드를 사용하여 다음을 수행하세요. Ioc, 종속성 반전 및 제어 반전 구현

위 내용은 PHP 디자인 패턴과 전략 패턴을 내용적인 측면까지 포함하여 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿