PHP 设计模式
来源:互联网 发布:smart 知乎 编辑:程序博客网 时间:2024/05/10 16:59
1、单例模式
<?php/** * 单例模式:对操作频繁的类只实例化一次,降低消耗 */class test {private static $object=null;//私有化构造函数,禁止外部实例化private function __construct() {echo mt_rand(1,10);}//私有化克隆函数,禁止复制对象实例private function __clone() {}//对外接口public static function to_object() {if(is_null(self::$object)) {self::$object= new self();}return self::$object;}public function test() {echo 2;}}test::to_object();$a= test::to_object();$a->test();//test 只实例化了1次
2、工厂模式
<?php/** * 工厂模式:在一个方法中根据条件生成不同的对象 *///基类abstract class work {abstract protected function count($a,$b);}//加法class add extends work {public function count($a,$b) {echo $a+$b;}}//减法class delete extends work {public function count($a,$b) {echo $a-$b;}}//生成对象class to_object {public static function index($k) {switch ($k) {case '+':return new add();break;case '-':return new delete();break;}}}//测试$object= to_object::index('+');echo $object->count(10,10);
3、观察者模式
<?php/** * 观察者模式 * @author: Mac * @date: 2012/02/22 */ class Paper{ /* 主题 */ private $_observers = array(); public function register($sub){ /* 注册观察者 */ $this->_observers[] = $sub; } public function trigger(){ /* 外部统一访问 */ if(!empty($this->_observers)){ foreach($this->_observers as $observer){ $observer->update(); } } }} /** * 观察者要实现的接口 */interface Observerable{ public function update();} class Subscriber implements Observerable{ public function update(){ echo "Callback\n"; }}$paper = new Paper();$paper->register(new Subscriber());$paper->trigger();
0 0
- [php]php设计模式 (总结)
- php设计模式
- php 观察者设计模式
- php设计模式
- php设计模式
- php设计模式
- php设计模式学习
- php 设计模式
- php设计模式
- php设计模式
- php设计模式
- PHP设计模式
- [转]PHP 设计模式
- php设计模式
- php设计模式目录
- PHP 设计模式
- PHP 常用设计模式
- php 设计模式
- vs2013 ADO连接SQL server2012数据库
- 什么才叫幸福的生活
- 如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?
- Java写的登陆窗口
- 使用Random类生成随机数
- PHP 设计模式
- WPF 数据绑定 combobox
- Android ImageView加边框
- SEO优化怎么原创文章内容?
- ios 解析json常见的四种方法
- 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)
- SM30表格维护
- presentModalViewController和dismissModalViewControllerAnimated的使用总结
- mac os 下 adb识别各种非主流android手机