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设计模式(一)相关推荐

  1. 【Design pattern】设计模式思路总结(一)

    看了一周的设计模式,跟着小菜的思路走! 从简单工厂过渡策略,后面看的这几个模式都是在单一职责,开放--封闭原则,依赖倒转原则下不断的改进,采用模式写出的代码更容易扩展,维护! 比较容易懂. 装饰模式: ...

  2. GOF23设计模式(结构型模式)代理模式~

    代理模式应用场景十分广泛,随便一个框架都会用到,因此学好代理模式对后续框架学习是最基本的要素!!今天我们就来讲讲代理模式! 目录 1.简介 1. 核心作用 2. 角色分析 2. 应用场景 4. 分类 ...

  3. GOF23设计模式(创建型模式)工厂模式

    目录: 一:工厂模式的核心本质 二:关于面向对象的六大基本原则 三:工厂模式的三大类详解(代码示例,详细分析) 首先,上咱本GOF23所有工厂模式的分类表格!!! 创建型模式 单例模式.工厂模式.抽象 ...

  4. GOF23设计模式(创建型模式)单例模式

    目录: 一:单例模式的核心作用.常见应用场景 二:五种单例模式及其实现 三:关于反射和反序列化破解单例模式的漏洞,以及相应的解决方案 四:测试五种单例模式的效率 一:核心作用及常见应用场景: 核心作用 ...

  5. Python七大原则,24种设计模式

    七大设计原则: 1.单一职责原则[SINGLE RESPONSIBILITY PRINCIPLE]:一个类负责一项职责.  2.里氏替换原则[LISKOV SUBSTITUTION PRINCIPLE ...

  6. Java设计模式:单例模式

    学而时习,稳固而之心, 好久没有复习java的知识了,今天有空温习了单例模式,这里记录一下 单例模式是常见的设计模式的一种,其特点就是 指一个类只有一个实例,且该类能自行创建这个实例  , 保证一个类 ...

  7. 设计模式中的六大基本原则

    软件设计中的基本共识: 1,高内聚,低耦合:如果想使软件系统架构稳定,那么我们期望软件的各模块内元素结合的紧密,而模块之间的耦合度(关联性)越低越好.高内聚不仅体现在模块上,单独的类或方法也应该是内聚 ...

  8. JS中的7种设计模式

    第九章Refactoring to OOP Patterns 重构为OOP模式 7种设计模式: 1,模版方法模式(template method) 2,策略模式(strategy) 3,状态模式(st ...

  9. 设计模式之创建型汇总

    设计模式 创建型 工厂方法模式 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 使用场景: 创建对象需要大量重复的代码 客户端(应用层)不依 ...

  10. [Python设计模式] 第21章 计划生育——单例模式

    github地址:https://github.com/cheesezh/python_design_patterns 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式 ...

最新文章

  1. 【BZOJ-3456】城市规划 CDQ分治 + NTT
  2. 字节AI Lab总监李磊离职加入UCSB,马维英后又一大牛回归学界
  3. linux搭建vsftpd虚拟用户访问
  4. zabbix3.0.4添加对指定进程的监控
  5. iphone UITableView及UIWebView的使用
  6. python模块(4)-Collections
  7. Web程序中将Cell华表的修改 保存到数据库或服务器端文件夹内
  8. 95-130-350-源码-source-kafka相关-FlinkKafkaProducer
  9. 如何断点调试Tomcat源码
  10. oracle processes 的大小,Oracle中sessions和processes的大小关系(10g和11g不同)
  11. 【被网上巨坑了】 win10+php5.6-ts-vc11-x64配置imagick的经历
  12. windows网络防火墙开发二三事
  13. 文秘计算机考核,行政文秘绩效考核
  14. linux日常常用命令介绍——实用、简单明了不啰嗦
  15. bzoj3384[Usaco2004 Nov]Apple Catching 接苹果*bzoj1750[Usaco2005 qua]Apple Catching*
  16. Python自然语言处理 | 编写结构化程序
  17. 接口压力测试:Siege压测安装、使用和说明
  18. 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows
  19. 公关策划书的标准格式及撰写要素
  20. 如何用python爬虫爬取qq空间说说

热门文章

  1. Docker下安装mysql超详细步骤
  2. 1.简述计算机控制系统的概念,自考机电一体化技术及应用 2
  3. 容量可动态扩展的LinkedBlockingQueue
  4. mysql ansi nulls_sql server 的ANSI_NULLS设置
  5. 数电实验二 常用中规模组合逻辑电路的设计及应用
  6. 「自动化」聊起来简单,做起来难 | 谈效风生
  7. sklearn进行垃圾邮件分类
  8. 普源DS1072U示波器70MHz带宽,500MSa/s采样率
  9. 数据是:如何在 ”内存“中的 ”存“ 和 ”取“ 的
  10. 小程序实现点击复制内容功能