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

PHP之设计模式(工厂、单例)

php 搞代码 3年前 (2022-01-23) 14次浏览 已收录 0个评论

设计模式简单说应对某类问题而设计的解决方式


工厂模式:应对需求创建相应的对象

<code><span><span>class</span><span>factory</span>{</span><span><span>function</span><span>__construct</span><span>(<span>$name</span>)</span>{</span><span>if</span>(file_exists(<span>'./'</span>.<span>$name</span>.<span>'.class.php'</span>)){            <span>return</span><span>new</span><span>$name</span>;        }<span>else</span>{            <span>die</span>(<span>'not exist'</span>);        }    }}</code>

单例模式:只创建一个对象的实例,不允许再创建实例,节约资源@本文来源gaodai$ma#com搞$代*码6网搞代gaodaima码(例如数据库的连接)

<code><span><span>class</span><span>instance</span>{</span><span>public</span><span>$val</span> = <span>10</span>;    <span>private</span><span>static</span><span>$instance</span> ;    <span>private</span><span><span>function</span><span>__construct</span><span>()</span>{</span>}    <span>private</span><span><span>function</span><span>__clone</span><span>()</span>{</span>}    <span>//设置为静态方法才可被类调用</span><span>public</span><span>static</span><span><span>function</span><span>getInstance</span><span>()</span>{</span><span>/*if(!isset(self::$instance)){            self::$instance = new self;        }*/</span><span>if</span>(!<span>isset</span>(instance::<span>$instance</span>)){            instance::<span>$instance</span> = <span>new</span><span>self</span>;        }        <span>return</span> instance::<span>$instance</span>;    }}<span>$obj_one</span> = instance::getInstance();<span>$obj_one</span>->val = <span>20</span>;<span>//clone可以调用__clone()克隆即new出一个新的的对象</span><span>//$obj_two = clone $obj_one;</span><span>$obj_two</span> = instance::getInstance();<span>echo</span><span>$obj_two</span>->val;<span>echo</span><span>'<p>'</span>;var_dump(<span>$obj_one</span>,<span>$obj_two</span>);</code>

‘).addClass(‘pre-numbering’).hide(); $(this).addClass(‘has-numbering’).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('

  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    以上就介绍了PHP之设计模式(工厂、单例),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


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

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

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

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