background image

interface IUser

{

  function getName();

}

class User implements IUser

{

  public function __construct( $id ) { }

  public function getName()

  {

    return "Jack";

  }

}

class UserFactory

{

  public static function Create( $id )

  {

    return new User( $id );

  }

}

$uo = UserFactory::Create( 1 );

echo( $uo->getName()."\n" );

?>

IUser

 接口定义用户对象应执行什么操作。

IUser

 的实现称为

 

Use

r

UserFactory

 工厂类则创建

 

IUser

 

 

对象。此关系可以用图 1 

 

中的 UML 表示。

 

图 1. 

 

工厂类及其相关 IUser 接口和用户类

如果您使用

 

php

 解释器在命令行上运行此代码,将得到如下结果:

% php factory1.php 

Jack

%