PHP设计模式——单例模式
单例模式也称单态,是23种设计模式中最简单的一种,从他的名字就可以知道他的核心思想,单例模式就是系统中只有一个这样的对象,对象只有一个,在Java或者C#中,单例模式一般有两种,分别是懒汉式、饿汉式,但是在PHP中常用的就是懒汉式,由于PHP是单线程的,懒汉式也不存在双重验证。
懒汉式具体代码:
<!--?php /** * Created by PhpStorm. * User: LYL * Date: 2015/4/21 * Time: 21:25 */ /**懒汉式 * Class Singleton */ class Singleton { //创建静态对象变量 private static $instance=null; public $age; //构造函数私有化,防止外部调用 private function __construct() { } //克隆函数私有化,防止外部克隆对象 private function __clone() { } //实例化对象变量方法,供外部调用 public static function getInstance() { if(empty(self::$instance)) { self::$instance=new Singleton(); } return self::$instance; } } </pre--> 测试代码:
$single1=Singleton::getInstance(); $single1->age=22; $single2=Singleton::getInstance(); $single2->age=24; echo 变量1的age:{$single1->age} ; echo 变量2的age:{$single2->age} ;
我们可以看到,变量$single1,$single2的age都是24,说明变量$single1,$single2是一个变量,类Singleton是单例的。
通过以上代码,我可以整理编写单例模式的三个步骤:
1.创建一个类静态变量
2.私有化构造函数与克隆函数,防止外部调用
3.提供一个外部可以调用的静态方法,实例化第一步创建的静态变量
很明显,单例模式的适用场景就是系统中的对象只需要一个就可以的时候,例如,Java中Spring的Bean工厂,PHP中的数据库连接等等,只要有这种需求就首先单例模式。
PHP面向对象设计模式

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)