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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.