PHP设计模式
来源:互联网 发布:儿童拼音软件 编辑:程序博客网 时间:2024/05/22 02:30
PHP常见设计模式主要有:工厂模式、单例模式
1、工厂模式
<?phpabstract class DB{ abstract public function select(); abstract public function update(); abstract public function delete(); abstract public function add();}class MysqlFactory extends DB{ public function select() { echo 'mysql select'; } public function update(){ echo 'mysql update'; } public function delete(){ echo 'mysql delete'; } public function add(){ echo 'mysql add'; }}class SqlserverFactory extends DB{ public function select() { echo 'SqlServer select'; } public function update(){ echo 'SqlServer update'; } public function delete(){ echo 'SqlServer delete'; } public function add(){ echo 'SqlServer add'; }}class Factory{ public static function createFactory($dbname){ $dbname = ucwords($dbname) . 'Factory'; return new $dbname(); }}$db = Factory::createFactory('sqlserver');$db->select();2、单例模式
class DB{ public static $instance = null; public static function getInstance(){ if(self::$instance == null){ self::$instance = new self(); } return self::$instance; }}3、单例模式与工厂模式相结合
<?phpabstract class DB{ abstract public function getInstance(); abstract public function select(); abstract public function update(); abstract public function delete(); abstract public function add();}class MysqlFactory extends DB{ public static $instance = null; public function getInstance(){ if(self::$instance == null){ self::$instance = new self(); } return self::$instance; } public function select() { echo 'mysql select'; } public function update(){ echo 'mysql update'; } public function delete(){ echo 'mysql delete'; } public function add(){ echo 'mysql add'; }}class SqlserverFactory extends DB{ public static $instance = null; public function getInstance(){ if(self::$instance == null){ self::$instance = new self(); } return self::$instance; } public function select() { echo 'SqlServer select'; } public function update(){ echo 'SqlServer update'; } public function delete(){ echo 'SqlServer delete'; } public function add(){ echo 'SqlServer add'; }}class Factory{ public static function createFactory($dbname){ $dbname = ucwords($dbname) . 'Factory'; return $dbname::getInstance(); }}$db = Factory::createFactory('sqlserver');$db->select();是不是感觉很有意思呀!
在框架中基本上这些模式都会被用到
0 0
- [php]php设计模式 (总结)
- php设计模式
- php 观察者设计模式
- php设计模式
- php设计模式
- php设计模式
- php设计模式学习
- php 设计模式
- php设计模式
- php设计模式
- php设计模式
- PHP设计模式
- [转]PHP 设计模式
- php设计模式
- php设计模式目录
- PHP 设计模式
- PHP 常用设计模式
- php 设计模式
- 持续集成环境Jenkins及插件的安装
- [12 Jun 2015 ~ 18 Jun 2015] Deep Learning in arxiv
- 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器
- Python中find()方法的使用
- UFLDL(新版)中文翻译——Supervised Learning and Optimization: Logistic Regression
- PHP设计模式
- 环境烘培与shader初步,学习笔记一
- 学习H5+CSS3+JS的一些心得体会
- WebCollector下载整站页面(JAVA网络爬虫)
- 第十六周周四GUI编程及文件及选择
- 设置软键盘搜索键以及监听搜索键点击
- GitLab常用命令
- Android 使用notepad++ 格式化本地Json数据需要的对比安装插件
- JS请求JSON格式的数据及JSON对象