码迷,mamicode.com
首页 > Web开发 > 详细

php常见五种设计模式

时间:2018-07-30 21:28:13      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:bubuko   com   系统   nbsp   属性   ext   header   私有属性   静态   

php面向对象基础知识 请点击查看

单例模式

单例模式解决的是如何在整个项目中创建唯一对象实例的问题.  (示例demo:)

 1 <?php
 2 //单例模式:保证某个类只有一个实例,能自行实例化对象,完成其所有的功能操作.  
 3 //最典型案例:数据库操作(单例模式可以避免大量的new操作.每一次new操作都会消耗系统和内存的资源.)
 4 header("Content-Type: text/html;charset=utf-8");
 5 class User{
 6     //静态的私有属性(保存一个当前类的唯一对象)
 7     private static $instance;
 8     //私有的构造方法,防止类外new新对象
 9     private function __construct(){
10     }
11     //私有的克隆方法,防止类外克隆新对象
12     private function __clone(){
13 
14     }
15     //静态的公开方法,得到当前类的对象
16     public static function getInstance(){
17         if(!self::$instance){
18             self::$instance = new self();
19         }      
20         return self::$instance;
21     }
22 
23     private $name;
24     public function setName($n){ 
25         $this->name = $n; 
26     }
27     public function getName(){ 
28         echo $this->name; 
29     }
30 
31 }
32 $userA = User::getInstance();
33 $userB = User::getInstance();
34 echo ‘<pre>‘.‘单例模式获取唯一实例:‘.‘<br>‘;
35 var_dump($userA,$userB);
36 
37 echo ‘<hr>‘.‘单例模式获取当前类私有属性:‘.‘<br>‘;
38 $userA->setName(‘admin_a‘);
39 $userB->setName(‘admin_b‘);
40 $userA->getName();
41 echo ‘<br>‘;
42 $userB->getName();

 

运行结果如下图:

技术分享图片

 

php常见五种设计模式

标签:bubuko   com   系统   nbsp   属性   ext   header   私有属性   静态   

原文地址:https://www.cnblogs.com/cxx8181602/p/9392523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!