PHP单例和工厂模式
这篇文章介绍的内容是关于PHP单例和工厂模式 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
工厂模式:
<?php interface persion{ public function say(); } class man implements persion{ public function say(){ echo 'i am man'; } } class factory{ public static function createman(){ return new man(); } } $obj = factory::createman(); $obj->say();
工厂模式,经常用到的就是改了man类的名称,只需要改下工厂类factory里边createman类的内容就可以了,其他调用类的地方都不用改,工厂模式其实就是再调用类的地方跟类之间又加了一层工厂类,调用的地址直接调用工厂类
单例模式:
单列模式经常用到连接数据库的类,比如:
<?php class Database { // 声明$instance为私有静态类型,用于保存当前类实例化后的对象 private static $instance = null; // 数据库连接句柄 private $db = null; // 构造方法声明为私有方法,禁止外部程序使用new实例化,只能在内部new private function __construct($config = array()) { $dsn = sprintf('mysql:host=%s;dbname=%s', $config['db_host'], $config['db_name']); $this->db = new PDO($dsn, $config['db_user'], $config['db_pass']); } // 这是获取当前类对象的唯一方式 public static function getInstance($config = array()) { // 检查对象是否已经存在,不存在则实例化后保存到$instance属性 if(self::$instance == null) { self::$instance = new self($config); } return self::$instance; } // 获取数据库句柄方法 public function db() { return $this->db; } // 声明成私有方法,禁止克隆对象 private function __clone(){} // 声明成私有方法,禁止重建对象 private function __wakeup(){} } $config = array( 'db_name' => 'test1', 'db_host' => 'localhost', 'db_user' => 'root', 'db_pass' => '' ); //获取数据库连接句柄 $obj = database::getInstance($config); $db = $obj->db();
单例模式简单理解就是把类的构造函数弄成私有属性,这样就可以禁止外部直接实例化,然后再弄个静态方法,在这个方法里判断当前类有没有实例化对象,如果没有就实例化自己,然后赋值给一个类属性返回,如果有实例化则直接返回这个实例化对象
Atas ialah kandungan terperinci PHP单例和工厂模式 . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
