不积跬步无以至千里

记录精彩的程序人生

  • 首页
  • Java
  • Golang
  • PHP
  • Python
  • Nodejs
  • Lua
  • Docker
  • DevOps
  • 文章归档
  • 默认分类
  • 关于
  • 标签

  • 搜索
PostgreSQL hbase 时间同步 nexus 开机启动 nexus, 开机启动 jenkins安装配置 gitlab安装配置 gitlab安装 文件系统 fastdfs gcc切换 gcc升级 mysql8 交换空间 虚拟内存 tcp thrift lua tag test VPN SoftEtherVPN homebrew asm spring tomcat maven jdk ios mac 图案字符 figlet mysql半同步复制 mysql主从同步 一主多从 一主一从 主从同步 反向代理 密码重置 test 虚拟机扩容 swap 虚拟空间 docker ldocker grpc-gateway protobuf 微服务 go grp GRPC 授权登录 OAuth2.0 SOA supervisord supervisor RPC CentOS rabbitmq 环境变量 php-fpm php.ini error php7 lnmp 编译安装 mysql nginx linux java php python redis 字符串操作 mysql5.7 Solo

php单态设计模式(单例模式)

发表于 2021-04-01 | 分类于 默认分类 | 0 | 阅读次数 1471

1.单态设计模式含义:

单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在。作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

2.单台模式的三个关键点:

① 需要一个保存类的唯一实例的静态成员变量;

②构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义;

③必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一实例的一个引用 。

 

<?php
class DB {
private static $obj = null;           //声明一个私有的,静态的成员属性$obj
private function__construct() {       //私有构造方法,只能在类的内部实例化对象
echo "连接数据库成功<br>";
}
public static function getInstance() {  // 通过此静态方法才能获取本类的对象
if(is_null(self::$obj))  //如果本类中的$obj为空,说明还没有被实例化过
self::$obj = new self();  //实例化本类对象
return self::$obj;  //返回本类的对象
}
public function query($sql) {  //执行SQL语句完成对数据库的操作
echo $sql;
}
}
$db = DB::getInstance();        //只能使用静态方法getInstance()去获取DB类的对象
$db -> query("select *from user");       //访问对象中的成员
?>

高效程序员所具备的特征
设计模式之——单例模式(Singleton)的常见应用场景
  • 文章目录
  • 站点概览
ken

ken

记录精彩的程序人生

498 日志
9 分类
77 标签
RSS
Creative Commons
Links
  • 酷壳
0%
© 2010 — 2025 ken
由 Halo 强力驱动
鄂ICP备18013899号-1