php 디자인 모델 의 추상 적 인 공장 모델 분석[스타 크 래 프 트 게임 사례]
스타 크 래 프 트 는 전략 게임 이기 때문에 같은 병종,적과 아군 은 다르다.
전형 적 인 것 은 마우스 의 색깔 이다.자신의 물 체 를 눌 렀 을 때 마우스 의 색깔 이 녹색 으로 변 하고 적의 물 체 를 눌 렀 을 때 마우스 의 색깔 이 빨간색 으로 변 한다.
그리고 모든 물체 의 상태,점 에서 자신의 물 체 를 찍 을 때 상태 구역 은 완전한 상 태 를 나타 내 고 점 에서 적의 물 체 를 찍 을 때 상태 구역 은 일부 정 보 를 나타 낸다.
우 리 는 마우스 와 인간 종족 의 수송선 만 을 고려한다 고 가정 합 니 다.게이머 자신의 수송선 점 중 후 상태 구역 은 안에 장 착 된 부 대 를 표시 하고,점 중 적 은 안에 부 대 를 적재 하 는 지 여 부 를 표시 하지 않 습 니 다.
이렇게 하면 우 리 는 네 가지 대상 이 있다.자신의 마 우 스 를 클릭 하고 적의 마 우 스 를 클릭 하 며 자신의 수송선 상태,적의 수송선 상태 이다.
만약 에 공장 방법 모델 을 사용한다 면 네 개의 구체 적 인 공장(또는 자 공장)을 세 워 야 한다.이런 코드 는 유지 와 수정 이 쉽 지 않다.왜냐하면 우 리 는 앞으로 다른 상황 을 추가 해 야 하기 때문이다.맹우.
해결 해 야 할 문제:우 리 는 이 대상 들 을 연결 시 켜 공장 의 조작 을 더욱 논리 적 으로 하 기 를 바란다.
사고방식:우리 가 자신 과 적 을 통 해 대상 을 구분 하 는 이상 통 일 된 귀속 대상 을 같은 구체 적 인 공장 에 넣 고 각 구체 적 인 공장 은 여러 가지 대상 을 제조 하 는 것 을 책임 진다.
추상 공장 모델 예시:
<?php
//
//
class mineMouse
{
//
public $color = 'green';
}
//
class enemyMouse
{
//
public $color = 'red';
}
//
class mineDropship
{
// , 2
public $loading = '2 tanks';
}
//
class enemyDropship
{
//
public $loading = '';
}
// ,
class abstractCreator
{
// ,
public function getCreator($belong)
{
//
$creatorClassName = $belong.'Creator';
//
return new $creatorClassName();
}
}
//
interface productCreator
{
// , ( , )
public function creatProduct($productName);
}
// ,
class mineCreator implements productCreator
{
//
public function creatProduct($productName)
{
//
$productClassName = 'mine'.$productName;
//
return new $productClassName;
}
}
// ,
class enemyCreator implements productCreator
{
//
public function creatProduct($productName)
{
//
$productClassName = 'enemy'.$productName;
//
return new $productClassName;
}
}
//
//
$abstractCreator = new abstractCreator();
// , ,
$realCreator1 = $abstractCreator->getCreator('enemy');
//
$product1 = $realCreator1->creatProduct('Mouse');
// , red
echo $product1->color;
// , ,
$realCreator2 = $abstractCreator->getCreator('mine');
//
$product2 = $realCreator2->creatProduct('Dropship');
// , 2 tanks,
echo $product2->loading;
?>
실행 결과:red2 tanks
용도 총화:추상 적 인 공장 모델 은 같은 속성 을 가 진 제품 을 같은 구체 적 인 공장 으로 분류 하고 구체 적 인 공장 의 수량 을 줄 이 며 조작 할 때 직책 을 정리 할 수 있다.
실현 총화:속성 에 따라 구체 적 인 공장 대상 으로 돌아 가 는 추상 적 인 공장 이 필요 하 다.예 를 들 어 위의 abstract Creator 는 각 제품 의 속성(자신의,적의)을 분류 하고 속성 에 따라 각 구체 적 인 공장 을 설립 해 야 한다.각 구체 적 인 공장 은 같은 속성 을 가 진 여러 개의 서로 다른 제품(마우스 와 운반 선)을 만들어 야 한다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.