PHP 팩토리 패턴의 예

无忌哥哥
풀어 주다: 2023-04-01 21:36:02
원래의
1241명이 탐색했습니다.

* 싱글톤 패턴: 단일 유형의 고유한 인스턴스 객체를 생성하는 데 사용

* 팩토리 패턴: 여러 유형의 여러 인스턴스 객체를 생성하는 데 사용

//모양 클래스 선언

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 &#39;<hr>&#39;;
$triangle = Shape::create(&#39;triangle&#39;,[20,50]);
echo &#39;三角形的面积是&#39;.$triangle->area();
로그인 후 복사

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿