php 设计模式(抽象工厂)

来源:互联网 发布:温度控制pid算法c程序 编辑:程序博客网 时间:2024/06/05 10:08
abstract ApptEncoder {    abstract function encoder();}class BloggsApptEncoder extends ApptEncoder{    function encoder()    {        return 'bapp';    }}class BloggsTtdEncoder extends ApptEncoder{    function encoder(){        return 'BloggsTtdEncoder';    }}class BloggsContactEncoder extends ApptEncoder{    function encoder(){        return 'BloggsContactEncoder';    }}abstract class CommsManagers{    abstract function getHeaderText();    abstract function getApptEncoder();    abstract function getTtdEncoder();    abstract function getContactEncoder();    abstract function getFooterText();}class BlogCommsManager extends CommsManagers{    public function getHeaderText(){        return 'Blog header';    }    public function getApptEncoder(){        return new BloggsApptEncoder();    }    public function getTtdEncoder(){        return new BloggsTtdEncoder();    }    public function getContactEncoder(){        return new BloggsContactEncoder();    }    public function getFooterText(){        return 'Blog Text';    }

}

改进型

//改进abstract class CommsManager{    const APPT = 1;    const TTD = 2;    const CONTACT = 3;    abstract function getHeaderText();    abstract function make($flag_info);    abstract function getFooter();}class BlogsCommsManager extends CommsManager{    function getHeaderText(){        return 'Blog header';    }    function make($flag_info){        switch($flag_info){            case self::APPT :                return new BloggsApptEncoder();            case self::TTD:                return new BloggsTtdEncoder();            case self::CONTACT:                return new BloggsContactEncoder();        }    }    function getFooter(){        return 'Blogs Footer';    }}

原创粉丝点击