单元素模式:

某些应用程序资源是独占的,因为有且只有一个此类型的资源。应用程序每次包含且仅包含一个对象,那么这个对象就是一个单元素。指的是在应用程序的范围内只对指定的类创建一个实例。通常该模式中包含一个私有构造方法,用来确保用户无法通过创建对象或者克隆的方式对其进行实例化。除此以外,该模式中还包含一个私有静态属性与公有静态方法。公有静态方法负责对其本身实例化,然后将这个对象存储在私有静态属性中,用来确保只有一个实例被创建。

单元素模式例子:

/**
*私有构造方法__contruct()用来确保Sing类无法通过创建对象或克隆的方式对其进行实例化
*只能通过公有静态方法getInter()生成一个该类的实例并且存储在私有静态属性$Sing_class中。
*/
class Sing{
private static $Sing_class=null;
private static $name;
private function __construct(){
self::$name++;
}
public static function getInter(){
if(self::$Sing_class==null){
return new Sing();
}
return self::$name;
}
public function getName(){
echo self::$name;
}
}
$test= Sing::getInter();
$test->getName();
echo "<br />";
$test1= Sing::getInter();
$test1->getName();
echo "<br />";
$test3= Sing::getInter();
$test3->getName();

php 设置模式 单元素模式(单例模式或单件模式)的更多相关文章

  1. 夜话JAVA设计模式之单例模式(单件模式Singleton)

    单例模式也叫单件模式,就是确保一个类只有一个实例,并提供一个全局访问点. 设计成单例即把某个类设计成我们自己管理的单独实例,避免实例对象的重复创建,我们只有通过单例类的全局访问点获取实例. 下面来看金 ...

  2. jQuery 获取、设置表单元素的值

    获取表单元素值: 文本框,文本区域: $("#txt").attr("value"): 多选框 checkbox:$("#checkbox_id&qu ...

  3. jQuery 获取和设置表单元素

    jQuery提供了val()方法,使用它我们可以快速地获取和设置表单的文本框.单选按钮.以及单选按钮的值. 使用val()不带参数,表示获取元素的值 使用val()给定参数,则表示把值赋给元素 如下: ...

  4. JAVA设计模式之单例模式(单件模式)—Singleton Pattern

    1.什么是单例模式? <Head First 设计模式>中给出如下定义:确保一个类只有一个实例,并提供一个全局访问点. 关键词:唯一实例对象. 2.单例模式的实现方式: 2.1 懒汉式 对 ...

  5. Java设计模式——线程安全的单件模式

    单件模式,也称单例模式,用以创建独一无二的.只能有一个实例的对象. 单件模式的类图是所有模式的类图中最简单的--只有一个类.尽管从类设计的视角来看单件模式很简单,但是实现上还是会遇到一些问题,本文着重 ...

  6. jQuery使用之(四)处理页面的表单元素

    表单是一个特殊的页面元素,value的值是最受关注的,jQuery提供了强大的val()方法来处理相关的操作. 1.获取表单元素的值. 直接调用val()方法时可以获取选择器的 中的第一个元素的val ...

  7. 设计模式之单件模式(Singleton Pattern)

    一.单件模式是什么? 单件模式也被称为单例模式,它的作用说白了就是为了确保“该类的实例只有一个” 单件模式经常被用来管理资源敏感的对象,比如:数据库连接对象.注册表对象.线程池对象等等,这种对象如果同 ...

  8. [设计模式] javascript 之 单件模式

    单件模式说明 1. 说明:单件模式,就是静态化的访问中已经实例化的对象,这个对象只能通过一个唯一的入口访问,已经实例或待实例化的对象:面向对象语言如Java, .Net C#这样的服务端动态语言里,能 ...

  9. [MyBean-说明书]关于插件的单件模式(singleton),插件的共享模式

    [说明] 单件模式是一种用于确保整个应用程序中只有一个类实例. 想想我们的系统中有哪些方面可以应用到单件模式,比如大家常说的连接(ADOConnection)共享,其实就是指的单件模式. [MyBea ...

随机推荐

  1. 计蒜客 30994 - AC Challenge - [状压DP][2018ICPC南京网络预赛E题]

    题目链接:https://nanti.jisuanke.com/t/30994 样例输入: 5 5 6 0 4 5 1 1 3 4 1 2 2 3 1 3 1 2 1 4 样例输出: 55 样例输入: ...

  2. UESTC 1059 - 秋实大哥与小朋友

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1059 Time Limit: 3000/1000MS (Java/Others)     Memory Li ...

  3. python字典获取最大值的键的值

    有时我们需要字典中数值最大的那个键的名字,使用max(dict, key=dict.get)函数非常的方便 key_name = max(my_dict, key=my_dict.get) 获取之后你 ...

  4. Ubuntu:/etc/rc.local 可执行权限问题

    VmWare 11.1.2 安装Ubuntu 12.04系列版本, /etc/rc.local 有可执行权限. 安装Ubuntu 14.04系列版本,发现 /etc/rc.local 没有可执行权限, ...

  5. Ubuntu16.04 搜狗输入法输入汉字时候选栏是一串字符数字乱码问题解决方法

    https://blog.csdn.net/liudahanghang/article/details/80494851 1. 如果是刚装完搜狗输入法,则输入命令:sudo apt-get insta ...

  6. 币安Binance API

    本文介绍币安Binance API General API Information The base endpoint is: https://api.binance.com All endpoint ...

  7. CentOS网卡配置大全

    持续更新中... 1.配置机器名 2.配置网卡属性 3.问题解决 3.1解决网卡经常需要手动重连问题 vi /etc/sysconfig/network-scripts/ifcfg-ens33 把ON ...

  8. xpath教程 1 - 什么是XPath

    xpath教程 1 什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历. W3School官方 ...

  9. NYOJ 587 blockhouses 【DFS】

    blockhouses 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 Suppose that we have a square city with straigh ...

  10. 怎样知道 CPU 是否支持虚拟化技术(VT) | Linux 中国

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79832475 wx_fmt=png&a ...