PHP设计模式之工厂模式(FactoryMethod)

<?php
 /*抽象的产品角色*/
 interface Product{
  public function Printf();
 }
 
 /*请注意,与工厂角色不同的是,这里只有一个产品族,里面有着两个产品A、B*/
 class ProductA implements Product{
  public function Printf(){
   echo "this is A!<br/>";
  }
 }
 class ProductB implements Product{
  public function Printf(){
   echo "this is B!<br/>";
  }
 }
 
 /*生产使用的抽象的工厂*/
 interface Creator{
  public function Factory();
 }
 /*分别生产两种产品的两种工厂*/
 class aCreator implements Creator{
  public function Factory(){
   return new ProductA();
  }
 }
 class bCreator implements Creator{
  public function Factory(){
   return new ProductB();
  }
 }
 
 function Make($creator){
  /*并没有指定是生产的是哪一种产品,但是工厂已经根据传进来的工厂决定好了*/
  $product = $creator->Factory();
  $product->Printf();
 }
 
 function Client(){
  $creator = new bCreator();
  Make($creator);
 }
?>
<?php
 Client();
?>

你可能感兴趣的:(PHP,工厂模式)