コード例 #1
0
ファイル: listing9.03.php プロジェクト: jabouzi/projet
abstract class Employee
{
    protected $name;
    private static $types = array('minion', 'cluedup', 'wellconnected');
    static function recruit($name)
    {
        $num = rand(1, count(self::$types)) - 1;
        $class = self::$types[$num];
        return new $class($name);
    }
    function __construct($name)
    {
        $this->name = $name;
    }
    abstract function fire();
}
// new Employee class...
class WellConnected extends Employee
{
    function fire()
    {
        print "{$this->name}: I'll call my dad\n";
    }
}
$boss = new NastyBoss();
$boss->addEmployee(Employee::recruit("harry"));
$boss->addEmployee(Employee::recruit("bob"));
$boss->addEmployee(Employee::recruit("mary"));
$boss->projectFails();
$boss->projectFails();
$boss->projectFails();
コード例 #2
0
ファイル: example1.php プロジェクト: VitaOpus/Patterns
        $this->name = $name;
    }
    abstract function fire();
}
class Minion extends Employee
{
    function fire()
    {
        print "{$this->name}: убери со стола \n";
    }
}
class NastyBoss
{
    private $employees = [];
    function addEmployee($employees)
    {
        $this->employees[] = new Minion($employees);
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
$boss = new NastyBoss();
$boss->addEmployee("Игорь");
$boss->addEmployee("Владимир");
$boss->addEmployee("Мария");
$boss->projectFails();
コード例 #3
0
ファイル: 9-1-2.php プロジェクト: quekaihua/StudyTest
}
class ClurUp extends Employee
{
    function fire()
    {
        print "{$this->name}: I'll call my lawyer\n";
    }
}
class NastyBoss
{
    private $employees = array();
    function addEmployee(Employee $employee)
    {
        $this->employees[] = $employee;
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
$boss = new NastyBoss();
$boss->addEmployee(new Minion("barry"));
$boss->addEmployee(new ClurUp("bob"));
$boss->addEmployee(new Minion("mary"));
$boss->projectFails();
$boss->projectFails();
$boss->projectFails();
$boss->projectFails();
コード例 #4
0
ファイル: SomePatterns.php プロジェクト: beregsys/Learning
    }
}
class WellConnected extends Employee
{
    function fire()
    {
        print "{$this->name}: blablabla\n";
    }
}
class NastyBoss
{
    private $employees = array();
    function addEmployee(Employee $employee)
    {
        $this->employees[] = $employee;
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
$employee = new NastyBoss();
$employee->addEmployee(Employee::recruit('Slava'));
$employee->addEmployee(Employee::recruit('Lidia'));
$employee->addEmployee(Employee::recruit('Nestor'));
$employee->projectFails();
$employee->projectFails();
$employee->projectFails();
コード例 #5
0
ファイル: index.php プロジェクト: Codealist/patterns
<?php

$boss = new NastyBoss();
$boss->addEmployee(Employee::recruit("Bob"));
$boss->addEmployee(Employee::recruit("Steve"));
$boss->addEmployee(Employee::recruit("Lisa"));
$boss->projectFails();
$boss->projectFails();
$boss->projectFails();
コード例 #6
0
ファイル: listing9.01.php プロジェクト: jabouzi/projet
    abstract function fire();
}
class Minion extends Employee
{
    function fire()
    {
        print "{$this->name}: I'll clear my desk\n";
    }
}
class NastyBoss
{
    private $employees = array();
    function addEmployee($employeeName)
    {
        $this->employees[] = new Minion($employeeName);
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
$boss = new NastyBoss();
$boss->addEmployee("harry");
$boss->addEmployee("bob");
$boss->addEmployee("mary");
$boss->projectFails();
// output:
// mary: I'll clear my desk
コード例 #7
0
ファイル: example3.php プロジェクト: VitaOpus/Patterns
    function fire()
    {
        print "{$this->name}: убери со стола\n";
    }
}
class NastyBoss
{
    private $employees = [];
    function addEmployee(Employee $employee)
    {
        $this->employees[] = $employee;
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
class ClueUp extends Employee
{
    function fire()
    {
        print "{$this->name}: вызови адвоката\n";
    }
}
$boss = new NastyBoss();
$boss->addEmployee(Employee::recruit("Игорь"));
$boss->addEmployee(Employee::recruit("Владимир"));
$boss->addEmployee(Employee::recruit("Мария"));
コード例 #8
0
ファイル: example2.php プロジェクト: VitaOpus/Patterns
    function addEmployee(Employee $employee)
    {
        $this->employees[] = $employee;
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
class ClueUp extends Employee
{
    function fire()
    {
        print "{$this->name}: вызови адвоката\n";
    }
}
$boss = new NastyBoss();
$boss->addEmployee("Игорь");
$boss->addEmployee("Владимир");
$boss->addEmployee("Мария");
$boss->projectFails();
$boss = new NastyBoss();
$boss->addEmployee(new Minion("Игорь"));
$boss->addEmployee(new ClueUp("Владимир"));
$boss->addEmployee(new Minion("Мария"));
$boss->projectFails();
$boss->projectFails();
$boss->projectFails();
コード例 #9
0
ファイル: fabric.php プロジェクト: pers1307/levelUpPHP
    }
}
class CluedUp extends Employee
{
    function fire()
    {
        echo $this->name . ': вызови адвоката';
    }
}
class NastyBoss
{
    private $employees = [];
    function addEmployee(Employee $employee)
    {
        $this->employees[] = $employee;
    }
    function projectFails()
    {
        if (count($this->employees) > 0) {
            $emp = array_pop($this->employees);
            $emp->fire();
        }
    }
}
$boss = new NastyBoss();
$boss->addEmployee(Employee::recruit('Игорь'));
$boss->addEmployee(Employee::recruit('Владимир'));
$boss->addEmployee(Employee::recruit('Мария'));
var_dump($boss);
$boss->projectFails();
var_dump($boss);