示例#1
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";
示例#2
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();
示例#3
0
    }
}
class MegaMainEncoder extends MainEncoder
{
    function encode()
    {
        return "Это мы чтото делали с классом MegaMainEncoder";
    }
}
class CommsManager
{
    const BLOG = 1;
    const MEGA = 2;
    private $mode = 1;
    function __construct($mode)
    {
        $this->mode = $mode;
    }
    function getMainEncoder()
    {
        switch ($this->mode) {
            case self::MEGA:
                return new MegaMainEncoder();
            default:
                return new BlogMainEncoder();
        }
    }
}
$result = new CommsManager(CommsManager::BLOG);
$someClass = $result->getMainEncoder();
print $someClass->encode();