示例#1
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();