• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php工厂模式和单例模式区别

php 搞代码 4年前 (2022-01-04) 24次浏览 已收录 0个评论

php工厂模式和单例模式区别

单例模式:防止重复实例化,避免大量的new操作,减少消耗系统和内存的资源,使得有且仅有一个实例对象

header("Content-type: text/html; charset=utf-8");   //定义字符编码,防止乱码/** * 单利类 */class Single{    private static $_instance;  //保存实例的对象      private function __construct()  //定义构造方法    {     }     private function __clone()  //定义一个空方法防止被外部克隆    {       }      public static function getInstance()    //定义一个获取实例对象的方法    {        if (!(self::$_instance  instanceof Single)) {            self::$_instance = new self();        }        return self::$_instance;        //返回实例对象    }     /**     * 测试方法     */    public function test()    {        echo "单利模式";    } }  $run=Single::getInstance();$run->test();

工厂模式:用工厂方法代替new操作的一种模式,如果需要更改所实例化的类名,只需在工厂方法内修改,不需逐一寻找代码中具体实例化的地方来源gao@daima#com搞(%代@#码网

header("content-type:text/html;charset=utf-8"); //定义字符编码,防止乱码/** * 测试类一  */class demo1{    //定义一个test1方法    public function test1()    {        echo '这是demo1类的test1方法'.PHP_EOL;    }}/** * 测试类二  */class demo2{    //定义一个test2方法    public function test2()    {        echo '这是demo2类的test2方法'.PHP_EOL;    }}/** * 工厂类 */class Factoty{    // 根据传参类名,创建对应的对象    static function createObject($className)    {        return new $className();    }}/** * 通过传类名,调用工厂类里面的创建对象方法 */$demo = Factoty::createObject('demo1');$demo->test1();             //输出这是demo1类的test1方法$demo = Factoty::createObject('demo2');$demo->test2();            //输出这是demo2类的test2方法

更多PHP知识,请访问搞代码

以上就是php工厂模式和单例模式区别的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php工厂模式和单例模式区别
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址