전략 PHP 디자인 패턴 전략 전략 패턴

WBOY
풀어 주다: 2016-07-29 08:45:45
원래의
853명이 탐색했습니다.

코드 복사 코드는 다음과 같습니다.


/**
* 전략 패턴(Strategy.php)
*
* 일련의 알고리즘을 정의하고 하나씩 캡슐화하여 상호 교환 가능하게 만듭니다. 사용되는 알고리즘의 변경 사항은 사용하는 고객과 무관할 수 있습니다.
*
*/
// - --다음은 닫힌 일련의 알고리즘입니다----
interface CacheTable
{
public function get($key)
public function set($key,$value) ;
public function del($key);
}
//캐시 사용 안함
class NoCache는 CacheTable을 구현합니다.
{
public function __construct(){
echo " NoCache 사용
";
}
공용 함수 get($key)
{
false 반환;
}
공용 함수 집합($key,$value)
{
return true;
}
public function del($key)
{
return false
}
// 파일 캐시
FileCache 클래스는 CacheTable
{
공용 함수 __construct()
{
echo "FileCache 사용
"
//파일 캐시 생성자
}
공용 함수 가져오기($key)
{
// 파일 캐시 가져오기 메서드 구현
}
공용 함수 집합($key,$value)
{
// 파일 캐시 set 메소드 구현
}
공용 함수 del($key)
{
// 파일 캐시 del 메소드 구현
}
}
// TTServer
class TTCache CacheTable 구현
{
공용 함수 __construct()
{
echo "TTCache
사용"
// TTServer 캐시 생성자
}
공용 함수 get ($key)
{
// TTServer 캐시된 get 메소드 구현
}
공용 함수 set($key,$value)
{
// TTServer 캐시된 set 메소드 구현
}
public function del($key)
{
// TTServer 캐시 del 메소드 구현
}
}
// -- 다음은 캐싱 없이 사용됩니다. 전략 - -----
클래스 모델
{
비공개 $_cache;
공용 함수 __construct()
{
$this->_cache = new NoCache()
}
공용 함수 setCache($cache)
{
$this->_cache = $cache
}
}
class UserModel 확장 모델
{
}
클래스 PorductModel 확장 모델
{
공용 함수 __construct()
{
$this->_cache = new TTCache()
}
}
// -- 예 ---
$mdlUser = new UserModel();
$mdlProduct = new PorductModel()
$mdlProduct->setCache(new FileCache()) // 변경 캐싱 전략
?>

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

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