设计模式简单说应对某类问题而设计的解决方式
工厂模式:应对需求创建相应的对象
<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>单例模式:只创建一个对象的实例,不允许再创建实例,节约资源(例如数据库的连接)
简介PHP轻论坛是一个简单易用的PHP论坛程序,适合小型社区和个人网站使用。v3.0版本是完全重构的版本,解决了之前版本中的所有已知问题,特别是MySQL保留字冲突问题。主要特点• 简单易用:简洁的界面,易于安装和使用• 响应式设计:适配各种设备,包括手机和平板• 安全可靠:避免使用MySQL保留字,防止SQL注入• 功能完善:支持分类、主题、回复、用户管理等基本功能• 易于扩展:模块化设计,便于
21
<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>
以上就介绍了PHP之设计模式(工厂、单例),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号