>  기사  >  백엔드 개발  >  PHP 팩토리 패턴 사용의 이점 분석

PHP 팩토리 패턴 사용의 이점 분석

黄舟
黄舟원래의
2017-11-13 14:42:561580검색

이전에 php팩토리 모드의 세 가지 유형을 소개했고, php 팩토리 모드가 무엇이고 왜 php 팩토리 모드를 사용해야 하는지 오늘은 php 팩토리 모드를 사용하면 어떤 이점이 있는지 자세히 소개하겠습니다. !

일반적으로 클래스를 인스턴스화할 때 클래스가 생성될 때 다양한 매개변수를 기반으로 필요한 결과를 피드백할 수 있도록 몇 가지 매개변수를 제공합니다.
예를 들어 다음은 매우 간단한 User 클래스입니다.

코드는 다음과 같습니다.

<?php
interface IUser{
   function getName();
   function getAge();
}
class User implements IUser{
   protected $_name;
   protected $_age;
   function construct($name, $age){
      $this->_name = $name;
      $this->_age = (int)$age;
   }
   function getName(){
      return $this->_name;
   }
  function getAge(){
      return $this->_age;
   }
}
?>

이 클래스를 인스턴스화하려면 다음을 수행해야 합니다.
$ u = new User('Xiao Ming', 19);
일반적으로 이 클래스를 거의 사용하지 않는다면 그렇게 해도 큰 영향을 미치지 않으며 매우 좋습니다.
갑자기 이 클래스에 분류를 추가하고 Xiao Ming을 학생 그룹에 추가하고 싶습니다. 하지만 이 클래스를 수정하기 전에 여러 파일에서 여러 번 인스턴스화하면 매개변수를 추가하는 것은 다음과 같이 바꿔야 하기 때문에 매우 번거롭습니다.
$u = new User('Xiaoming',19,'student');
물론 매개변수를 다음으로 전달할 수도 있습니다. constructorfunction 기본 값 설정은 이런 종류의 작업 중복을 피하기 위해 사용되지만 실제로는 코드 우아함의 관점에서 좋지 않습니다. 식별자를 통해 매개변수 집합에 대응할 수 있는 팩토리 메서드가 있다고 상상해 보세요. , 그리고 이 매개변수를 특정 텍스트에 저장합니다. 문서는 배열 형식으로 팩토리 클래스에 직접 저장될 수 있습니다. 매개변수를 추가하거나 빼야 하는 경우에도 . 속성, 여기에서 코드를 바꿀 필요가 없습니다. 여기에는 팩토리 클래스가 있습니다(사용자 클래스에 직접 메서드를 저장할 수도 있습니다).

코드는 다음과 같습니다.

interface IUser{
    function getName();
    function getAge();
}
class User implements IUser{
   protected $_group;
   protected $_name;
   protected $_age;
  function construct($name, $age, $group){
      $this->_group = $group;
      $this->_name = $name;
      $this->_age = (int)$age;
  }
  function getName(){
     return $this->_name;
  }
  function getAge(){
      return $this->_age;
  }
}
class Fuser{
   private static $group = array(
       array(‘小明‘,19,‘学生‘),
       array(‘小王‘,19,‘学生‘)
   );
   static function create($id){
      list($name, $age, $group) = self::$group[(int)$id];
      return new User($name, $age, $group);
   }
}
echo Fuser::create(0)->getName();

결과는 출력이어야 합니다. "샤오밍".

요약:

저는 친구들이 PHP 팩토리 패턴 사용의 이점을 어느 정도 이해하고 있으며 이 기사에서 배운 내용을 자신의 작업에서 연습할 수 있다고 믿습니다!

관련 추천:

세 가지 PHP 팩토리 패턴에 대한 간략한 소개


php 팩토리 패턴이란 무엇인가요? PHP 팩토리 모드를 사용하는 이유는 무엇입니까?


PHP 팩토리 패턴의 3가지 형태의 샘플 코드에 대한 자세한 설명

위 내용은 PHP 팩토리 패턴 사용의 이점 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.