php 디자인 모델 의 추상 적 인 공장 모델 분석[스타 크 래 프 트 게임 사례]

본 논문 의 사례 는 phop 디자인 모델 의 추상 적 인 공장 모델 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
스타 크 래 프 트 는 전략 게임 이기 때문에 같은 병종,적과 아군 은 다르다.
전형 적 인 것 은 마우스 의 색깔 이다.자신의 물 체 를 눌 렀 을 때 마우스 의 색깔 이 녹색 으로 변 하고 적의 물 체 를 눌 렀 을 때 마우스 의 색깔 이 빨간색 으로 변 한다.
그리고 모든 물체 의 상태,점 에서 자신의 물 체 를 찍 을 때 상태 구역 은 완전한 상 태 를 나타 내 고 점 에서 적의 물 체 를 찍 을 때 상태 구역 은 일부 정 보 를 나타 낸다.
우 리 는 마우스 와 인간 종족 의 수송선 만 을 고려한다 고 가정 합 니 다.게이머 자신의 수송선 점 중 후 상태 구역 은 안에 장 착 된 부 대 를 표시 하고,점 중 적 은 안에 부 대 를 적재 하 는 지 여 부 를 표시 하지 않 습 니 다.
이렇게 하면 우 리 는 네 가지 대상 이 있다.자신의 마 우 스 를 클릭 하고 적의 마 우 스 를 클릭 하 며 자신의 수송선 상태,적의 수송선 상태 이다.
만약 에 공장 방법 모델 을 사용한다 면 네 개의 구체 적 인 공장(또는 자 공장)을 세 워 야 한다.이런 코드 는 유지 와 수정 이 쉽 지 않다.왜냐하면 우 리 는 앞으로 다른 상황 을 추가 해 야 하기 때문이다.맹우.
해결 해 야 할 문제:우 리 는 이 대상 들 을 연결 시 켜 공장 의 조작 을 더욱 논리 적 으로 하 기 를 바란다.
사고방식:우리 가 자신 과 적 을 통 해 대상 을 구분 하 는 이상 통 일 된 귀속 대상 을 같은 구체 적 인 공장 에 넣 고 각 구체 적 인 공장 은 여러 가지 대상 을 제조 하 는 것 을 책임 진다.
추상 공장 모델 예시:

<?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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기