<?php //通过提供对自身共享实例的访问,单例设计模式用于限制特定对象只能被创建一次。 class InventoryConnection{ protected static $_instance = null; protected $_handle = null; public static function getInstance(){ if(!self::$_instance instanceof self){ self::$_instance = new self; } return self::$_instance; } protected function __construct(){ echo 'connect mysql'.PHP_EOL; } public function updateQuantity($band, $title, $number){ $query = "UPDATE CDs SET amount=amount+'".intval($number)."'"; $query .= "WHERE band='".addslashes($band)."'"; $query .= "AND title='".addslashes($title)."'"; echo $query.PHP_EOL; } } class CD{ protected $_title = ''; protected $_band = ''; public function __construct($title, $band){ $this->_title = $title; $this->_band = $band; } public function buy(){ $inventory = InventoryConnection::getInstance(); $inventory->updateQuantity($this->_band, $this->_title, -1); } } $boughtCDs = []; $boughtCDs[] = ['band' => 'fenghuangchuanqi', 'title' => 'zuixuanminzufeng']; $boughtCDs[] = ['band' => 'TFBOYS', 'title' => 'zuoshouyoushou']; foreach($boughtCDs as $boughtCD){ $cd = new CD($boughtCD['title'], $boughtCD['band']); $cd->buy(); } //当某个对象的实例化在整个代码流中只允许发生一次时,最佳的做法是使用单例设计模式。
单例设计模式
精选 转载huang_he_87 博主文章分类:设计模式
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
设计模式系列:单例模式
设计模式系列 单例模式
线程安全 单例模式 实例化 设计模式 -
【设计模式】单例设计模式
单例模式(Singleton Pattern)的定义为:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
设计模式 单例模式 java 构造函数 线程安全