PHP之singleInstance

 1 <?php
 2     //单例:一个类只有一个对象。
 3     //限制该类得到更多的对象,只允许产生一个对象。,一个对象就可完成所有对象的功能,目的是为了节约成本。这就是单例模式
 4
 5     /*
 6         function func(){
 7             static $name; //局部静态变量,根据函数生命周期来进行计算,下次调用会继续存在,
 8         }
 9
10         class test{
11             static $name; //属于静态类属性。
12         }
13
14     */
15
16     class MySQLDB{
17         //声明一个静态变量存储对象
18         private static $_instance;
19
20         //声明构造为私有不让外界new对象
21         private function __construct(){
22
23         }
24
25         //给定一个类方法不让让类外直接通过类名去访问
26         public static function getInstance(){
27
28             //判断对象是否被实例化
29             if (!isset(static::$_instance)) {
30                 //if(! (static::$_instance instanceof static)) //用 对象运输符号 instanceof做判断
31                 //不存在对象,new一个对象并返回给私有静态变量
32                 static::$_instance = new static;
33             }
34
35             //返回给静态变量存储
36             return static::$_instance;
37         }
38
39         //为了防止外界的克隆 把私有魔术方法
40         private function __clone(){
41
42         }
43     }
44
45
46     $dao = MySQLDB::getInstance();
47
48     var_dump($dao);
49
50     $dao1 = MySQLDB::getInstance();
51
52     var_dump($dao1);
53
54     // $dao2 = clone $dao;  //运行保存/**/
时间: 2024-11-05 19:28:17

PHP之singleInstance的相关文章

FLAG_ACTIVITY_NEW_TASK和SingleInstance的设计思路(多task的应用)

这部分的想法都是基于以下两点: 1.Activity可能被复用,可能是复用Activity的功能,还可能是复用Activity的状态: 2.Task的作用:target,同一个task中的Activity服务于相同的或者接近的目标(target). (一个task的目标往往由task的root Activity决定,因为是root Activity造就了这个task). Activity复用情景1: 在当前App中,通过Intent,打开了当前App或其他App的一个Activity(stand

Activity 的启动模式有4种,分别是standard、singleTop、singleTask、singleInstance

关于安卓部分知识 1.standar (标准启动模式) 这是Activity 的标准启动模式,也是 Activity 的默认启动模式.在这种模式下启动的Activity 可以被多次实例化,即在同一个任务栈种可以存在多个Activity实例,每个实例都会处理一个Intent 对象.如果ActivityA 的启动模式为standard,并且已经有一个ActivityA 被启动,在该 ActivityA中调用startActivity时会启动一个新的ActivityA 实例.栈的变化如下图: 如果Ac

activity启动模式之singleInstance

singleInstance 这个启动模式,是这个activity占有唯一的一个栈. 看如下demo manifest.xml <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:logo="@drawable/action_mode_search_

Android非5.0系统下singleTask singleInstance startActivityForResult

测试案例有两个MainActivity和TestActivity 如果MainActivity的launchMode为singleTask,而TestActivity的lauchMode为非singleTask和非singleInstance,这时startActivityForResult是正常的, 但如果TestActivity的lauchMode为singleTask或者singleInstance,则startActivityForResult是不正常的,在开启TestActivity的

android launchmode singleinstance问题

问题描述 最近测试关于launchmode的四种方式 默认模式 top singletask 都已经了解了 唯独这个instance模式 我的问题是 我们只作2个activity的假设A和B,其中A为instance的 B为标准模式 启动过程为A -> B -> A ->B 这个过程为什么B也只是一个实例了, B是标准模式,应该每次重新创建新的实例啊? 谁帮我解答一下这个问题,最好再做几个例子的测试,复杂一点的,能让我充分理解instance模式的 -------------------

android Activity launch mode 一个实例 singleInstance

参考:http://blog.csdn.net/zhangjg_blog/article/details/10923643# singleInstance的特点可以归结为以下三条: 以singleInstance模式启动的Activity具有全局唯一性,即整个系统中只会存在一个这样的实例 以singleInstance模式启动的Activity具有独占性,即它会独自占用一个任务,被他开启的任何activity都会运行在其他任务中(官方文档上的描述为,singleInstance模式的Activi

我对standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解

之前自学android的时候,单从视频和书本上对这四种启动模式仅仅有了初步的字面上的理解.最近实战了下,也对这四种启动模式有了比较清晰的概念. 首先说下什么是Activity,按照我的理解,我们在手机上看到的每一个页面都是一个Activity,包括系统的桌面,也是一个Activity. 要启动一个Activity有四种模式:standard(标准启动模式).singleTop.singleTask.singleInstance. 注: Aty1_1和Aty2_1为两个不同的Activity,At

Android singleTask 和singleInstance的区别

上周三去了网易面试被问到了这个问题,当时没有回答正确,回来以后特地写了一个程序研究一下. 关于Android activity的启动模式一共有四种 standard singleTop singleTask singleInstance 这四种 standard 和singleTop都比较好理解,这里主要研究一下 singleTask singleInstance的区别 首先是:singleTask 假设有两个Activity 分别是A 和 B ,Activity A的启动模式是standard

Android启动activity的4种模式(standard、singleTop、singleTask、singleINstance) ..

在AndroidManifest.xml中配置activity时,android:launchMode属性会指定启动activity的模式,有四种: standard singleTop singleTask singleInstance 这四种模式一般配合Intent属性变量FLAG_ACTIVITY_XXX使用,比如FLAG_ACTIVITY_NEW_TASK,本文暂时撇开FLAG_ACTIVITY_XXX,只讨论这四种模式的启动结果,先考虑只在同一个应用下的情况. standard模式 系

微信分享配置回调Activity中launchMode=&quot;singleInstance&quot;的一个坑

在做微信分享的时候,需要用到一个微信的回调Activity:WXEntryActivity 需要用到微信的jar包,可以去开放平台获取 public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler { 这个activity需要实现一个接口,接口回调函数 // 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法 @Override public void onResp(BaseResp res