三个类概括PHP的五种设计模式
2023-06-13 09:14:35 时间
工厂模式
单元素模式
观察者模式
命令链模式
策略模式
复制代码代码如下:
单元素模式
观察者模式
命令链模式
策略模式
classpeople{
private$name="";
private$user=null;
privatefunction__constract($name){/*此处private定义辅助实现单元素模式*/
$this->name=$name;
}
publicstaticfunctioninstance($name){/*此方法实现工厂模式*/
static$object=null;/*此变量实现单元素模式*/
if(is_null($object))
$object=newpeople($name);
return$object;
}
publicfunctionwork_in($who=null)
{
if(is_null($who))echo"error";
else{
$this->user[]=$who;/*此数组变量实现观察者模式*/
echo$who->work();/*此方法调用实现策略模式*/
}
}
publicfunctionon_action($which=""){
if(empty($which))echo"error";
else{
foreach($this->useras$user)
$user->action($which);/*此方法调用实现命令链模式*/
}
}
}
$people=people::instance("jack");
$people->work_in(newstudent);
$people->work_in(newteacher);
$people->on_action("eat");
classstudent{
functionwork(){
echo"<br/>我是学生,朝九晚五。";
}
functionaction($which){
if(method_exists($this,$which))return$this->$which();
elseecho"youarewrong!";
}
functioneat(){
echo"<br/>我是学生,只能吃套餐。";
}
}
classteacher{
functionwork(){
echo"<br/>我是老师,晚上备课最忙。";
}
functionaction($which){
if(method_exists($this,$which))return$this->$which();
elseecho"icannotdoit!";
}
functioneat(){
echo"<br/>我是老师,可以每天吃大餐。";
}
}
相关文章
- PHP 浏览器缓存_php缓存引擎
- 环境管理 Linux下如何实现多版本PHP环境管理(linux多php版本)
- 基于MySQL的PHP留言板系统开发(php留言板mysql)
- Linux更新PHP,提升程序品质(linux更新php)
- PHP不支持MySQL:危机深重的问题(php不支持mysql)
- PHP连接MSSQL数据库遇到问题:无法连接的解决方案(php 无法 mssql)
- 使用PHP连接MSSQL数据库运行管道!(php mssql 管道)
- Linux下实现高效的PHP配置(linux下php配置)
- 获得GooglePR值的PHP代码
- php中文本操作的类
- php动态生成JavaScript代码
- php获取全局变量的代码
- PHP八种基本的数据类型小结
- php中用foreach来操作数组的代码
- php设计模式之单例、多例设计模式的应用分析
- PHP开发微信支付的代码分享
- 配置php.ini实现PHP文件上传功能
- NginxPHP-Fcgi中因PHP执行时间导致504GatewayTimeout错误解决记录