PHP 구현 정책 모드 예제

3647 단어 PHP전략 모드
이 글 의 실례 는 PHP 가 실현 하 는 전략 모델 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
개인 적 으로 디자인 모델 은 실제 응용 에서 만 천천히 익 힐 수 있다 고 생각 합 니 다.마지막 에 마음 속 에 모델 이 있 고 모든 일 에 모델 이 있 습 니 다.하하
예 를 들 어 한 전자상거래 홈 페이지 는 로그 인 사용자 의 성별 에 따라 광고 와 상품 유형 등 다양한 내용 을 표시 할 수 있다.
전통 적 인 방법:프로그램 내부 에서 여러 개의 if,else 를 사용 하여 판단 합 니 다.이렇게 하면 유지 하기 어렵 습 니 다.예 를 들 어 저 는 요괴 사용자 에 다시 가입 하고 싶 습 니 다!그러면 저 는 프로그램 에 else if 판단 을 추가 하 겠 습 니 다.이렇게 쓴 프로그램 은 어 지 럽 고 유지 하기 가 쉽 지 않 습 니 다.
전략 모드:실 현 된 사상 은 이 렇 습 니 다.인 터 페 이 스 를 만 들 고 각 유형의 사용자 에 게 하나의 종 류 를 만 들 고 인터페이스 에 있 는 방법 을 각각 실현 하 며 홈 페이지 에서 어떤 종 류 를 예화 하 는 지 판단 합 니 다.
코드 는 다음 과 같 습 니 다:
인터페이스 파일 UserStrategy.php

<?php
//    ,         
interface UserStrategy
{
  //       
  public function showAd();
  //       
  public function showCategory();
}
?>

남성 사용자 의 구체 적 인 디 스 플레이 MaleUserStrategy.php

<?php
//          
class MaleUserStrategy implements UserStrategy
{
  //          iphone6s   
  public function showAd()
  {
    echo 'Iphone6s';
  }
  //         
  public function showCategory()
  {
    echo '     ';
  }
}
?>

여성 사용자 의 구체 적 인 디 스 플레이 FemaleUserStrategy.php

<?php
class FemaleUserStrategy implements UserStrategy
{
  public function showAd()
  {
    echo '2016  ';
  }
  public function showCategory()
  {
    echo '  ';
  }
}
?>

중요 한 것 은 첫 페이지 파일 Strategy.php 를 만 드 는 것 입 니 다.

<?php
//                         require,                      
//             ,                  
define('BASEDIR', __DIR__);
//      require     ,     Config.php
require 'Config.php';
//PHP   spl ,                
//  spl_autoload_register()      ?    ,                             ,            !
spl_autoload_register('Config::autoload');
class Strategy
{
  //           
  protected $_strategy;
  //            
  public function index()
  {
    echo 'Ad:';
    echo $this->_strategy->showAd();
    echo '<br/>';
    echo 'Category:';
    echo $this->_strategy->showCategory();
  }
  //       
  public function setStrategy($strategy)
  {
    $this->_strategy = $strategy;
  }
}
//     
$strategy = new Strategy();
//  $_GET['female']                 --                             ,                         
if(isset($_GET['female']))
{
  $people = new FemaleUserStrategy();
}
else
{
  $people = new MaleUserStrategy();
}
//          
$strategy = setStrategy($people);
//       --         ,                        。
$strategy->index();
?>

자동 으로 파일 Config.php 가 져 오기

<?php
//        ,           ,            ,                ,           ,             ,psr-0  
class Config
{
  //             
  static function autoload($class)
  {
    //               
    require BASEDIR.'/'.$class.'.php';
  }
}
?>

앞으로 의 프로 그래 밍 에서 많이 고려 하면 익숙해 지면 요령 이 생 긴 다 고 자신 에 게 경고 하 다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기