phpコンビネーションモード
1450 ワード
/*
。
: , 。 。
: 。 , 。 。
*/
/**
*
*@author li.yonghuan
*@version 2014.01.15
*/
abstract class Unit{
/**
*
*
*/
abstract function bombardStrength();
}
/**
*
*@author li.yonghuan
*@version 2014.01.15
*
*/
class Archer extends Unit{
/**
*
*
*/
public function bombardStrength(){
return '4';
}
}
/**
*
*@author li.yonghuan
*@version 2014.01.15
*/
class laserCannonUnit extends Unit{
/**
*
*
*/
public function bombardStrength(){
return '42';
}
}
/**
*
*@author li.yonghuan
*@version 2014.01.15
*/
class Arm{
/**
*
*@var array
*/
private $units = array();
/**
*
*@param Unit object
*/
public function addUnit( Unit $unit ){
array_push( $this->units, $unit );
}
/**
*
*
*/
public function bombardStrength(){
$strength = 0;
foreach( $this->units as $unit ){
$strength += $unit->bombardStrength();
}
return $strength;
}
}
$archer = new Archer();
$laserCannon = new laserCannonUnit();
$arm = new Arm();
$arm->addUnit( $archer );
$arm->addUnit( $laserCannon );
echo $arm->bombardStrength();