示例#1
0
    }
}
class MegaApptEncoder extends ApptEncoder
{
    function encode()
    {
        return "Appointment data encoded in MegaCal format\n";
    }
}
class CommsManager
{
    const BLOGGS = 1;
    const MEGA = 2;
    private $mode = 1;
    function __construct($mode)
    {
        $this->mode = $mode;
    }
    function getApptEncoder()
    {
        switch ($this->mode) {
            case self::MEGA:
                return new MegaApptEncoder();
            default:
                return new BloggsApptEncoder();
        }
    }
}
$comms = new CommsManager(CommsManager::MEGA);
$apptEncoder = $comms->getApptEncoder();
print $apptEncoder->encode();
示例#2
0
    const BLOGGS = 1;
    const MEGA = 2;
    private $mode;
    function __construct($mode)
    {
        $this->mode = $mode;
    }
    function getHeaderText()
    {
        switch ($this->mode) {
            case self::MEGA:
                return "MegaCal header\n";
            default:
                return "BloggsCal header\n";
        }
    }
    function getApptEncoder()
    {
        switch ($this->mode) {
            case self::MEGA:
                return new MegaApptEncoder();
            default:
                return new BloggsApptEncoder();
        }
    }
}
$man = new CommsManager(CommsManager::MEGA);
print get_class($man->getApptEncoder()) . "\n";
$man = new CommsManager(CommsManager::BLOGGS);
print get_class($man->getApptEncoder()) . "\n";