学习php设计模式 php实现工厂模式(factory)
<?php
/**
* 抽象工厂角色
*/
interface Creator {
public function factoryMethod();
}
/**
* 具体工厂角色A
*/
class ConcreteCreatorA implements Creator {
/**
* 工厂方法 返回具体 产品A
* @return ConcreteProductA
*/
public function factoryMethod() {
return new ConcreteProductA();
}
}
/**
* 具体工厂角色B
*/
class ConcreteCreatorB implements Creator {
/**
* 工厂方法 返回具体 产品B
* @return ConcreteProductB
*/
public function factoryMethod() {
return new ConcreteProductB();
}
}
/**
* 抽象产品角色
*/
interface Product {
public function operation();
}
/**
* 具体产品角色A
*/
class ConcreteProductA implements Product {
/**
* 接口方法实现 输出特定字符串
*/
public function operation() {
echo 'ConcreteProductA
';
}
}
/**
* 具体产品角色B
*/
class ConcreteProductB implements Product {
/**
* 接口方法实现 输出特定字符串
*/
public function operation() {
echo 'ConcreteProductB
';
}
}
class Client {
/**
* Main program.
*/
public static function main() {
$creatorA = new ConcreteCreatorA();
$productA = $creatorA->factoryMethod();
$productA->operation();
$creatorB = new ConcreteCreatorB();
$productB = $creatorB->factoryMethod();
$productB->operation();
}
}
Client::main();
?>