<?php
/*------------------------------------------------
* Summary: PHP Builder Pattern
* Author: fanyh
* CreateTime: 2009-08-29
* LastModifed:2009-08-29
* copyright (c)2009 fan.lnyh@gmail.com
--------------------------------------------------*/
include('init.php');
interface IBuilder{
public function carPart1() ;
public function carPart2() ;
public function carPart3() ;
public function TainPart1() ;
public function TainPart2() ;
}
abstract class Builder implements IBuilder {
public function carPart1(){}
public function carPart2(){}
public function carPart3(){}
public function TainPart1(){}
public function TainPart2(){}
}
class Car{
public function buildCar(){
echo 'Car造出来了!' ;
echo '<br>' ;
}
}
class Tain{
public function builderTain(){
echo 'Tain造出来了!' ;
echo '<br>' ;
}
}
class BuilderCar extends Builder {
public function carPart1(){
echo '造部件1......' ;
echo '<br>' ;
}
public function carPart2(){
echo '造部件2......' ;
echo '<br>' ;
}
public function carPart3(){
echo '造部件3......' ;
echo '<br>' ;
}
}
class BuilderTain extends Builder {
public function TainPart1(){
echo '造部件1......' ;
echo '<br>' ;
}
public function TainPart2(){
echo '造部件2......' ;
echo '<br>' ;
}
}
class Director {
public function buildCar(){
$builderCar = new BuilderCar() ;
$builderCar->carPart1();
$builderCar->carPart2();
$builderCar->carPart3();
$car = new Car() ;
$car->BuildCar();
}
public function buildTain(){
$builderTain = new BuilderTain() ;
$builderTain->TainPart1();
$builderTain->TainPart2();
$tain = new Tain() ;
$tain->builderTain();
}
}
$director = new Director() ;
$director->buildCar();
echo '<br>' ;
$director->buildTain();
?>