PHP设计模式(一)
1.单例模式 保证一个类只有一个实例。
<?php
header("Content-Type:text/html;charset=utf-8");
//单例模式
class danli {private $name;//私有化构造方法private function __construct(){}static public $instance;//静态方法 返回当前实例static public function getinstance(){if(!self::$instance){self::$instance = new self();}return self::$instance;}public function setname($n){$this->name = $n;}public function getname(){echo $this->name;}
}
$a = danli::getinstance();
$a->setname('lisan');
$a->setname('李三');
$a->getname();
//结果 打印 李三
$b = danli::getinstance();
$b->getname();
//结果 打印 李三
2.注册模式 解决全局共享和交换对象,创建好的对象,注册到全局可使用的数组之中;
<?php
class test {function say() {echo 'test.class say haha';}
}
class register{protected static $projects;function set($alias, $project){self::$projects[$alias] = $project;}static function get($alias){return self::$projects[$alias];}function _unset($alias){unset(self::$projects[$alias]);}
}
$bb = new register();
$bb->set('test',new test());
$cc = $bb::get('test');
$cc->say();
//打印 结果 test.class say haha
3.工厂模式 常用来替代多次使用new的情况
<?php
class action{function say();
}
class talk extends action{function say(){echo 'I can bbb~';}
}
class eat extends action{function say(){echo 'I can eat eat~';}
}
class factory{static function createTalk(){return new talk(); }static function createEat(){return new eat();}
}$eat = factory::createEat();
$talk = factory::createTalk();$eat->say();
$talk->say();//结果打印
// I can eat eat~ I can bbb~
PHP设计模式(一)相关推荐
- 【Design pattern】设计模式思路总结(一)
看了一周的设计模式,跟着小菜的思路走! 从简单工厂过渡策略,后面看的这几个模式都是在单一职责,开放--封闭原则,依赖倒转原则下不断的改进,采用模式写出的代码更容易扩展,维护! 比较容易懂. 装饰模式: ...
- GOF23设计模式(结构型模式)代理模式~
代理模式应用场景十分广泛,随便一个框架都会用到,因此学好代理模式对后续框架学习是最基本的要素!!今天我们就来讲讲代理模式! 目录 1.简介 1. 核心作用 2. 角色分析 2. 应用场景 4. 分类 ...
- GOF23设计模式(创建型模式)工厂模式
目录: 一:工厂模式的核心本质 二:关于面向对象的六大基本原则 三:工厂模式的三大类详解(代码示例,详细分析) 首先,上咱本GOF23所有工厂模式的分类表格!!! 创建型模式 单例模式.工厂模式.抽象 ...
- GOF23设计模式(创建型模式)单例模式
目录: 一:单例模式的核心作用.常见应用场景 二:五种单例模式及其实现 三:关于反射和反序列化破解单例模式的漏洞,以及相应的解决方案 四:测试五种单例模式的效率 一:核心作用及常见应用场景: 核心作用 ...
- Python七大原则,24种设计模式
七大设计原则: 1.单一职责原则[SINGLE RESPONSIBILITY PRINCIPLE]:一个类负责一项职责. 2.里氏替换原则[LISKOV SUBSTITUTION PRINCIPLE ...
- Java设计模式:单例模式
学而时习,稳固而之心, 好久没有复习java的知识了,今天有空温习了单例模式,这里记录一下 单例模式是常见的设计模式的一种,其特点就是 指一个类只有一个实例,且该类能自行创建这个实例 , 保证一个类 ...
- 设计模式中的六大基本原则
软件设计中的基本共识: 1,高内聚,低耦合:如果想使软件系统架构稳定,那么我们期望软件的各模块内元素结合的紧密,而模块之间的耦合度(关联性)越低越好.高内聚不仅体现在模块上,单独的类或方法也应该是内聚 ...
- JS中的7种设计模式
第九章Refactoring to OOP Patterns 重构为OOP模式 7种设计模式: 1,模版方法模式(template method) 2,策略模式(strategy) 3,状态模式(st ...
- 设计模式之创建型汇总
设计模式 创建型 工厂方法模式 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 使用场景: 创建对象需要大量重复的代码 客户端(应用层)不依 ...
- [Python设计模式] 第21章 计划生育——单例模式
github地址:https://github.com/cheesezh/python_design_patterns 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式 ...
最新文章
- 【BZOJ-3456】城市规划 CDQ分治 + NTT
- 字节AI Lab总监李磊离职加入UCSB,马维英后又一大牛回归学界
- linux搭建vsftpd虚拟用户访问
- zabbix3.0.4添加对指定进程的监控
- iphone UITableView及UIWebView的使用
- python模块(4)-Collections
- Web程序中将Cell华表的修改 保存到数据库或服务器端文件夹内
- 95-130-350-源码-source-kafka相关-FlinkKafkaProducer
- 如何断点调试Tomcat源码
- oracle processes 的大小,Oracle中sessions和processes的大小关系(10g和11g不同)
- 【被网上巨坑了】 win10+php5.6-ts-vc11-x64配置imagick的经历
- windows网络防火墙开发二三事
- 文秘计算机考核,行政文秘绩效考核
- linux日常常用命令介绍——实用、简单明了不啰嗦
- bzoj3384[Usaco2004 Nov]Apple Catching 接苹果*bzoj1750[Usaco2005 qua]Apple Catching*
- Python自然语言处理 | 编写结构化程序
- 接口压力测试:Siege压测安装、使用和说明
- 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows
- 公关策划书的标准格式及撰写要素
- 如何用python爬虫爬取qq空间说说
热门文章
- Docker下安装mysql超详细步骤
- 1.简述计算机控制系统的概念,自考机电一体化技术及应用 2
- 容量可动态扩展的LinkedBlockingQueue
- mysql ansi nulls_sql server 的ANSI_NULLS设置
- 数电实验二 常用中规模组合逻辑电路的设计及应用
- 「自动化」聊起来简单,做起来难 | 谈效风生
- sklearn进行垃圾邮件分类
- 普源DS1072U示波器70MHz带宽,500MSa/s采样率
- 数据是:如何在 ”内存“中的 ”存“ 和 ”取“ 的
- 小程序实现点击复制内容功能