cari
Rumahpembangunan bahagian belakangtutorial phpCorak singleton dalam corak reka bentuk dan aplikasi dalam PHP

Corak singleton dalam corak reka bentuk dan aplikasi dalam PHP

Corak tunggal dalam corak reka bentuk dan aplikasinya dalam PHP

Pengenalan:
Corak reka bentuk ialah beberapa corak klasik untuk menyelesaikan masalah khusus yang diringkaskan oleh jurutera perisian berpengalaman semasa proses reka bentuk perisian. Antaranya, corak singleton adalah salah satu corak reka bentuk yang paling biasa digunakan. Corak tunggal memastikan bahawa kelas hanya mempunyai satu tika dan menyediakan pusat akses global untuk mengakses tika ini. Dalam PHP, corak tunggal digunakan secara meluas dalam pelbagai senario. Artikel ini akan memperkenalkan konsep, ciri dan aplikasi khusus corak tunggal dalam PHP secara terperinci, dan juga memberikan contoh kod yang berkaitan.

1. Konsep corak tunggal
Corak tunggal ialah corak reka bentuk ciptaan, yang memastikan bahawa kelas hanya mempunyai satu tika dan menyediakan titik akses global untuk mengakses tika ini. Tujuan utama corak tunggal adalah untuk mengehadkan bilangan instantiasi kelas, menjimatkan sumber sistem dan menyediakan akses global kepada objek.

Ciri-ciri utama corak tunggal termasuk:

  1. Sebuah kelas hanya boleh mempunyai satu contoh;
  2. mesti mencipta contoh ini dengan sendirinya;
  3. 2. Cara melaksanakan corak tunggal
Terdapat banyak cara untuk melaksanakan corak tunggal Dua kaedah yang biasa digunakan diperkenalkan di bawah.


Corak Singleton Lazy:
    Corak Singleton Lazy hanya mencipta tika objek apabila ia digunakan buat kali pertama. Kod pelaksanaan khusus adalah seperti berikut:

  1. class Singleton {
       private static $instance;
       
       private function __construct() {}   // 私有化构造函数
       
       public static function getInstance() {
          if (self::$instance == null) {
             self::$instance = new Singleton();
          }
          return self::$instance;
       }
    }
  2. Dalam kod di atas, kaedah getInstance() digunakan untuk mendapatkan satu-satunya tika kelas Singleton. Jika tika itu tidak wujud, buatnya Jika tika itu sudah wujud, kembalikannya secara langsung. Kaedah ini menggunakan pembolehubah statik $instance untuk menyimpan sama ada objek telah dibuat instantiated, dan diakses melalui kata kunci diri.

Corak singleton Cina lapar:
    Corak singleton Cina lapar mencipta tika objek apabila kelas dimuatkan. Kod pelaksanaan khusus adalah seperti berikut:

  1. class Singleton {
       private static $instance = new Singleton();
       
       private function __construct() {}   // 私有化构造函数
       
       public static function getInstance() {
          return self::$instance;
       }
    }
  2. Dalam kod di atas, pembolehubah $instance ditakrifkan sebagai peribadi dan dimulakan apabila kelas dimuatkan. Kaedah getInstance() boleh terus mengembalikan contoh ini.

3. Senario aplikasi mod Singleton dalam PHP

Mod tunggal digunakan secara meluas dalam banyak senario dalam PHP, seperti sambungan pangkalan data, pengelogan, fail konfigurasi, dll.


Ambil sambungan pangkalan data sebagai contoh Penciptaan sambungan pangkalan data biasanya merupakan operasi yang sangat memakan sumber. Mod tunggal memastikan bahawa hanya satu contoh sambungan pangkalan data wujud dan menyediakan pusat akses global untuk digunakan oleh modul lain, dengan itu mengelakkan sejumlah besar operasi penciptaan sambungan berulang dan meningkatkan prestasi sistem. Kod khusus adalah seperti berikut:

class Database {
   private static $instance;
   
   private function __construct() {}   // 私有化构造函数
   
   public static function getInstance() {
      if (self::$instance == null) {
         self::$instance = new Database();
         // 创建数据库连接
      }
      return self::$instance;
   }
}

Dalam kod di atas, satu-satunya contoh kelas Pangkalan Data diperoleh melalui kaedah getInstance() dan sambungan pangkalan data dibuat apabila tika itu diperoleh buat kali pertama. Seperti yang anda lihat, selepas menggunakan mod tunggal ini, anda boleh mendapatkan contoh sambungan pangkalan data melalui Pangkalan Data::getInstance() di mana-mana dalam sistem.

4 Ringkasan

Artikel ini memperkenalkan corak tunggal dalam corak reka bentuk dan aplikasi khusus dalam PHP secara terperinci. Corak tunggal memastikan bahawa kelas hanya mempunyai satu contoh, menyediakan pusat akses global untuk mengakses tika ini, mengelakkan operasi penciptaan objek berulang, dan dengan itu meningkatkan prestasi sistem. Dalam PHP, mod tunggal digunakan secara meluas dalam pelbagai senario, seperti sambungan pangkalan data, pengelogan, dll. Dengan membaca artikel ini, pembaca boleh mempunyai pemahaman yang lebih mendalam tentang konsep dan pelaksanaan corak tunggal, dan boleh menggunakannya secara fleksibel dalam pembangunan sebenar.

Atas ialah kandungan terperinci Corak singleton dalam corak reka bentuk dan aplikasi dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
一文理解JavaScript中的单例模式一文理解JavaScript中的单例模式Apr 25, 2023 pm 07:53 PM

JS 单例模式是一种常用的设计模式,它可以保证一个类只有一个实例。这种模式主要用于管理全局变量,避免命名冲突和重复加载,同时也可以减少内存占用,提高代码的可维护性和可扩展性。

深入聊聊设计模式利器之“职责链模式”(附go实现流程)深入聊聊设计模式利器之“职责链模式”(附go实现流程)Jan 17, 2023 am 11:43 AM

本篇文章给大家带来了关于golang设计模式的相关知识,其中主要介绍了职责链模式是什么及其作用价值,还有职责链Go代码的具体实现方法,下面一起来看一下,希望对需要的朋友有所帮助。

Go语言中的ETL的设计模式Go语言中的ETL的设计模式Jun 01, 2023 pm 09:01 PM

随着数据的增长和复杂性的不断提升,ETL(Extract、Transform、Load)已成为数据处理中的重要环节。而Go语言作为一门高效、轻量的编程语言,越来越受到人们的热捧。本文将介绍Go语言中常用的ETL设计模式,以帮助读者更好地进行数据处理。一、Extractor设计模式Extractor是指从源数据中提取数据的组件,常见的有文件读取、数据库读取、A

深入解析Go语言中的单例模式深入解析Go语言中的单例模式Mar 21, 2023 pm 06:36 PM

单例模式是一种常见的设计模式,它在系统中仅允许创建一个实例来控制对某些资源的访问。在 Go 语言中,实现单例模式有多种方式,本篇文章将带你深入掌握 Go 语言中的单例模式实现。

设计模式的六大原则是什么设计模式的六大原则是什么Jan 06, 2023 pm 04:25 PM

设计模式的六大原则:1、单一职责原则,其核心就是控制类的粒度大小、将对象解耦、提高其内聚性;2、开闭原则,可以通过“抽象约束、封装变化”来实现;3、里氏替换原则,主要阐述了有关继承的一些原则;4、依赖倒置原则,降低了客户与实现模块之间的耦合;5、接口隔离原则,是为了约束接口、降低类对接口的依赖性;6、迪米特法则,要求限制软件实体之间通信的宽度和深度。

C++ 函数重载和重写中单例模式与工厂模式的运用C++ 函数重载和重写中单例模式与工厂模式的运用Apr 19, 2024 pm 05:06 PM

单例模式:通过函数重载提供不同参数的单例实例。工厂模式:通过函数重写创建不同类型的对象,实现创建过程与具体产品类的解耦。

PHP入门指南:单例模式PHP入门指南:单例模式May 20, 2023 am 08:13 AM

在软件开发中,常常遇到多个对象需要访问同一个资源的情况。为了避免资源冲突以及提高程序的效率,我们可以使用设计模式。其中,单例模式是一种常用的创建对象的方式,即保证一个类只有一个实例,并提供全局访问。本文将为大家介绍如何使用PHP实现单例模式,并提供一些最佳实践的建议。一、什么是单例模式单例模式是一种常用的创建对象的方式,它的特点是保证一个类只有一个实例,并提

在PHP中,单例设计模式是什么概念?在PHP中,单例设计模式是什么概念?Aug 18, 2023 pm 02:25 PM

Singleton模式确保一个类只有一个实例,并提供了一个全局的访问点。它确保在应用程序中只有一个对象可用,并处于受控状态。Singleton模式提供了一种访问其唯一对象的方式,可以直接访问,而无需实例化类的对象。示例<?php  classdatabase{   publicstatic$connection;   privatefunc

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna