php设计模式--单例模式(三)

简介: php设计模式--单例模式(三)

单例模式 只能new一个对象  

1.第一次代码

为防止外界自由的new  自己new自己

2.第二次代码

//加个判断 有就不new可  

//判断只有一个对象  
class Single{
  protected $rnd;
  protected  static $ins = null;
  public function __construct(){
    $this->rnd = mt_rand(0,100);
  }
  public static function getins(){
    if(self::$ins === null){
      self::$ins = new self();
    }
    return self::$ins;
  }
}
$s1 = Single::getIns();
$s2 = Single::getIns();

这样也有问题 被人可以继承过来改为public 也可以克隆

防止克隆有克隆的方法

3.最终代码

private function __clone(){} //禁止克隆

最终代码

<?php
//单例模式
//判断只有一个对象  
 //最终代码
class Single{
  protected $rnd;
  protected  static $ins = null;
  public function __construct(){
    $this->rnd = mt_rand(0,100);
  }
  public static function getins(){
    if(self::$ins === null){
      self::$ins = new self();
    }
    return self::$ins;
  }
  private function __clone(){} //禁止克隆
}
$s1 = Single::getIns();
$s2 = Single::getIns();
//$s3 = clone $s2 ; //clone的时候会报错 不能clone 
print_r($s1);
print_r($s2);
var_dump($s2===$s1);
//var_dump($s3===$s2);

 

目录
相关文章
|
4月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
42 2
|
2月前
|
设计模式 存储 前端开发
前端必须掌握的设计模式——单例模式
单例模式是一种简单的创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。适用于窗口对象、登录弹窗等场景,优点包括易于维护、访问和低消耗,但也有安全隐患、可能形成巨石对象及扩展性差等缺点。文中展示了JavaScript和TypeScript的实现方法。
|
2月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
40 2
|
3月前
|
设计模式 Java 数据库连接
Java编程中的设计模式:单例模式的深度剖析
【10月更文挑战第41天】本文深入探讨了Java中广泛使用的单例设计模式,旨在通过简明扼要的语言和实际示例,帮助读者理解其核心原理和应用。文章将介绍单例模式的重要性、实现方式以及在实际应用中如何优雅地处理多线程问题。
56 4
|
3月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
|
3月前
|
设计模式 缓存 数据库连接
深入理解PHP的面向对象编程与设计模式####
本文旨在通过实例解析PHP中面向对象编程的核心概念及其在实际开发中的应用,特别是单例模式、工厂模式和观察者模式等常见设计模式。文章将展示这些模式如何帮助开发者构建更加灵活、可维护的代码结构,以及它们在解决具体问题时的优势。 ####
|
3月前
|
设计模式 存储 数据库连接
PHP中的设计模式:单例模式的深入理解与应用
【10月更文挑战第22天】 在软件开发中,设计模式是解决特定问题的通用解决方案。本文将通过通俗易懂的语言和实例,深入探讨PHP中单例模式的概念、实现方法及其在实际开发中的应用,帮助读者更好地理解和运用这一重要的设计模式。
33 1
|
3月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
|
3月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
34 0
|
4月前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性和扩展性
【10月更文挑战第13天】 本文将探讨PHP中常见的设计模式及其在实际项目中的应用。通过对比传统编程方式,我们将展示设计模式如何有效地提高代码的可维护性和扩展性。无论是单例模式确保类的单一实例,还是观察者模式实现对象间的松耦合,每一种设计模式都为开发者提供了解决特定问题的最佳实践。阅读本文后,读者将能更好地理解和应用这些设计模式,从而提升PHP编程的效率和质量。

热门文章

最新文章