<?php
/**
*工廠模式就是一種類,具備爲您建立對象的某些方法,這樣就可使用工廠類建立對象,而不直接使用new。這樣若是想更改建立的對象類型,只需更改工廠便可
*/php
class Factory
{
public static function create($type)
{
switch ($type) {
case 'rect':
return new Rect();
break;
case 'triangle':
return new Triangle();
break;
case 'circular':
return new Circular();
break;
defalut:
return null;
break;
}
}
}ide
abstract class Shape
{
abstract public function Area();
}對象
class Rect extends Shape
{
private $width;
private $height;ci
public function Area(){it
}io
public function __toString(){
return "矩形";
}
}function
class Triangle extends Shape
{
private $side1;
private $side2;
private $side3;class
public function Area(){方法
}static
public function __toString(){
return "三角形";
}
}
class Circular extends Shape
{
private $radius;
const PAI = 3.14;
public function Area(){
}
public function __toString(){
return "圓形";
}
}
$obj = Factory::create('rect');
if($obj instanceof Shape){ echo $obj;}else{ exit("沒有這個形狀");}