在设计模式中,PHP实例通常用于实现单例模式、工厂模式和原型模式等。
- 单例模式:单例模式确保一个类只有一个实例,并提供一个全局访问点。在PHP中,可以使用静态变量来保存实例,并通过静态方法来获取实例,确保只有一个实例被创建和使用。
class Singleton { private static $instance; private function __construct() {} public static function getInstance() { if (self::$instance === null) { self::$instance = new Singleton(); } return self::$instance; } } $singleton = Singleton::getInstance();
- 工厂模式:工厂模式用于创建对象,通过工厂类来实例化对象,隐藏具体类的实现细节。在PHP中,可以使用工厂方法或抽象工厂模式来实现。
interface Shape
{
public function draw();
}
class Circle implements Shape
{
public function draw()
{
echo "Drawing Circle";
}
}
class Square implements Shape
{
public function draw()
{
echo "Drawing Square";
}
}
class ShapeFactory
{
public function createShape($type)
{
if ($type === 'circle') {
return new Circle();
} elseif ($type === 'square') {
return new Square();
}
return null;
}
}
$factory = new ShapeFactory();
$circle = $factory->createShape('circle');
$circle->draw();
- 原型模式:原型模式用于复制对象,创建新的实例。在PHP中,可以通过对象克隆来实现原型模式。
class Prototype
{
private $name;
public function __construct($name)
{
$this->name = $name;
}
public function clone()
{
return clone $this;
}
}
$prototype = new Prototype('Object');
$clone = $prototype->clone();