* 싱글톤 패턴: 단일 유형의 고유한 인스턴스 객체를 생성하는 데 사용
* 팩토리 패턴: 여러 유형의 여러 인스턴스 객체를 생성하는 데 사용
//모양 클래스 선언
class Shape { //声明静态方法create,根据容器形状不同,创建不同图形类的实例 public static function create($type,array $size=[]) { //检测形状? switch ($type) { //长方形 case 'rectangle': return new Rectangle($size[0],$size[1]); break; //三角形 case 'triangle': return new Triangle($size[0],$size[1]); break; } } }
//직사각형 클래스 선언
class Rectangle { private $width; //宽度 private $height; //高级 public function __construct($witch,$height) { $this->width = $witch; $this->height = $height; } //计算长方形面积: 宽 * 高 public function area() { return $this->width * $this->height; } }
//삼각형 클래스 선언
class Triangle { private $bottom; //底边 private $height; //边长 public function __construct($bottom,$height) { $this->bottom = $bottom; $this->height = $height; } //计算三角形面积: (底 * 高) / 2 public function area() { return ($this->bottom * $this->height)/2; } }
//기존의 새로운 키워드를 사용하는 대신 정적 메소드를 사용하여 모양 클래스를 인스턴스화합니다
//그리고 다양한 클래스를 인스턴스화하고 다양한 모양 유형 매개변수를 기반으로 다양한 객체를 생성합니다
$rectangle = Shape::create('rectangle',[10,30]); echo '长方形的面积是'.$rectangle->area(); echo '<hr>'; $triangle = Shape::create('triangle',[20,50]); echo '三角形的面积是'.$triangle->area();
위 내용은 PHP 팩토리 패턴의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!