반응형
1. 추상 정책 인터페이스 만들기
interface GoodsStrategy{
public function modifyState();
}
2, 필요한 알고리즘 클래스 작성
class SupplerCommodityPoolClass implements GoodsStrategy{
protected $goodsObj;
protected $publicGoodsSaveObj;
public function __construct(PublicGoodsSave $publicGoodsSaveObj,Goods $goodsObj)
{
$this->publicGoodsSaveObj = $publicGoodsSaveObj;
$this->goodsObj = $goodsObj;
}
public function modifyState(){
//네가 원하는 처리를 해라
}
}
class SupplerCommodityPoolClass_1 implements GoodsStrategy{
protected $goodsObj;
protected $publicGoodsSaveObj;
public function __construct(PublicGoodsSave $publicGoodsSaveObj,Goods $goodsObj)
{
$this->publicGoodsSaveObj = $publicGoodsSaveObj;
$this->goodsObj = $goodsObj;
}
public function modifyState(){
//네가 원하는 처리를 해라
}
}
class SupplerCommodityPoolClass_2 implements GoodsStrategy{
protected $goodsObj;
protected $publicGoodsSaveObj;
public function __construct(PublicGoodsSave $publicGoodsSaveObj,Goods $goodsObj)
{
$this->publicGoodsSaveObj = $publicGoodsSaveObj;
$this->goodsObj = $goodsObj;
}
public function modifyState(){
//네가 원하는 처리를 해라
}
}
3. 구성 클래스 작성
class GoodsConfig{
public $config;
public function __construct(GoodsStrategy $config){
$this->config = $config;
}
public function doWork(){
return $this->config->modifyState();
}
}
4. 호출(클라이언트 호출, 어떤 정책을 사용할지 고객 스스로 결정, 즉 고객 스스로 인스턴스화 알고리즘 클래스)
//$reClass = new GoodsConfig(new SupplerCommodityPoolClass_1());
//$reClass = new GoodsConfig(new SupplerCommodityPoolClass_2());등
$reClass = new GoodsConfig(new SupplerCommodityPoolClass());
$reClass->doWork();
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP 구현 큐 양방향 큐 (0) | 2022.07.27 |
---|---|
Nginx가 Upstream을 사용하여 움직임 분리하기 (0) | 2022.07.27 |
CrossPHP 프레임워크의 상용 동작 (0) | 2022.07.27 |
php zip 압축 파일 읽기 (스트리밍 동작) (0) | 2022.07.27 |
php 원형 페이지 (0) | 2022.07.27 |