Maison développement back-end tutoriel php php设计模式之单例、多例设计模式的应用分析_php技巧

php设计模式之单例、多例设计模式的应用分析_php技巧

May 17, 2016 am 08:57 AM
php设计模式 Singleton

单例(Singleton)模式和不常见的多例(Multiton)模式控制着应用程序中类的数量。如模式名称,单例只能实例化一次,只有一个对象,多例模式可以多次实例化。

基于Singleton的特性,我们经常用Singleton配置应用程序并定义应用程序中可能随时访问的变量。但有时并不推荐使用Singleton,因为它生成了一个全局状态且

该单一根对象没有封装任何系统功能。多数情况下,会使单元测试和调试变得困难。读者根据情况自行决定。
代码示例:

复制代码 代码如下:

class SingletonExample{
    private function __construct(){}//防止直接实例化
  public static function getInstance(){ //不与任何对象有关联
 static $instance=null;    //调用此函数的所有代码共享该变量,不必要让其是类的静态变量
 if($instance==null){
   $instance=new SingletonExample();
     }
   return $instance;
  }
}
$obj1=SingletonExample::getInstance();
$obj2=SingletonExample::getInstance();
var_dump($obj1===$obj2);// true   是同一个实例
?>

Multiton与singleton相似,不同的是后者需要getInstance()函数传递关键值。
对于给定的关键值只会存在唯一的对象实例,如果有多个节点,每个节点拥有唯一的表识符,且各个节点在某单次执行(如cms里的节点)可能出现多次,那么就可以用Multiton模式实现这些节点啊,Multiton节省内存,并确保同一个对象的多个实例不发生冲突.
示例:
复制代码 代码如下:

  class MultitonExample{
 private function __construct(){}//防止直接实例化

   public static function getInstance($key){
  static $instance=array();   
  if(!array_key_exists($key,$instance)){
    $instance[$key]=new SingletonExample();
      }
    return $instance($key);
   }
 };
 ?>
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Paradigmes de programmation et modèles de conception courants en langage Go Paradigmes de programmation et modèles de conception courants en langage Go Mar 04, 2024 pm 06:06 PM

En tant que langage de programmation moderne et efficace, le langage Go possède de riches paradigmes de programmation et des modèles de conception qui peuvent aider les développeurs à écrire du code maintenable de haute qualité. Cet article présentera les paradigmes de programmation et les modèles de conception courants dans le langage Go et fournira des exemples de code spécifiques. 1. Programmation orientée objet Dans le langage Go, vous pouvez utiliser des structures et des méthodes pour implémenter une programmation orientée objet. En définissant une structure et des méthodes de liaison à la structure, les fonctionnalités orientées objet d'encapsulation de données et de liaison de comportement peuvent être obtenues. packagemaini

Quelles sont les méthodes d'implémentation du modèle singleton dans Golang ? Quelles sont les méthodes d'implémentation du modèle singleton dans Golang ? Mar 05, 2024 pm 05:45 PM

Il existe trois façons d'implémenter le mode singleton dans Golang : le mode paresseux, le mode affamé et le mode double vérification. Ensuite, nous présenterons en détail ces trois méthodes d’implémentation et fournirons des exemples de code spécifiques. 1. Mode paresseux Le mode paresseux signifie qu'une instance singleton est créée uniquement lorsqu'elle est appelée pour la première fois. Voici un exemple de code du mode paresseux : packagesingletonimport("sync")typeSingletonstru.

Modèles de conception couramment utilisés en PHP et leurs méthodes de mise en œuvre Modèles de conception couramment utilisés en PHP et leurs méthodes de mise en œuvre Jun 27, 2023 pm 01:08 PM

PHP est un langage de programmation largement utilisé et très populaire. PHP est une partie très importante des applications Web actuelles. Les modèles de conception jouent un rôle essentiel dans le développement d'applications PHP. Le modèle de conception est un modèle pour résoudre des problèmes qui peut être réutilisé dans différents environnements. Il nous aide à écrire un meilleur code et à le rendre plus fiable, maintenable et évolutif. Dans cet article, nous explorerons certains modèles de conception couramment utilisés en PHP et comment les implémenter. Modèle Singleton Le modèle Singleton est un modèle de création qui permet

Quels sont les modèles de conception en php ? Quels sont les modèles de conception en php ? Jul 25, 2023 am 09:39 AM

Les modèles de conception PHP incluent : 1. le mode Singleton, qui garantit qu'une classe n'a qu'un seul objet instancié ; 2. le mode Factory, qui encapsule le processus d'instanciation de l'objet dans une classe factory ; 3. le mode factory abstrait, qui est similaire à un mode usine ; Modèle d'usine pour créer des objets 4. Modèle d'observateur, réalisant des dépendances un à plusieurs entre les objets 5. Modèle d'adaptateur, convertissant l'interface d'une classe en interface d'une autre classe 6. Modèle de décorateur, ajouter dynamiquement quelques fonctions supplémentaires à ; un objet ; 7. Modèle d'itérateur ; 8. Modèle de stratégie ; 9. Modèle de méthode de modèle, etc.

Quels sont les modèles de conception dans PHP7.0 ? Quels sont les modèles de conception dans PHP7.0 ? May 26, 2023 am 09:21 AM

Avec le développement continu de la technologie, les modèles de conception deviennent de plus en plus importants dans le développement de logiciels. En tant que dernière version de PHP, PHP7.0 intègre également de nombreux modèles de conception. Dans cet article, nous explorerons les modèles de conception de PHP7.0 pour aider les programmeurs PHP à mieux comprendre et appliquer ces modèles. Modèle Singleton Le modèle singleton est un modèle de création qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global. En PHP7.0, vous pouvez utiliser la méthode __construct et la méthode statique pour

Modèles et pratiques de conception de base PHP Modèles et pratiques de conception de base PHP Nov 08, 2023 pm 08:58 PM

Introduction aux modèles et pratiques de conception de base PHP : les modèles de conception sont des modèles de résolution de problèmes couramment utilisés dans le développement de logiciels. Ils fournissent une solution réutilisable qui peut nous aider à suivre les meilleures pratiques et les bons principes de conception de logiciels pendant le processus de développement. En tant que langage de programmation largement utilisé, PHP possède également de nombreux modèles de conception communs et utiles qui peuvent être utilisés dans le développement de base. Cet article présentera plusieurs modèles de conception PHP courants et fournira des exemples de code pertinents. 1. Mode Singleton (Singleton) Le mode Singleton est un type qui permet uniquement

Explication détaillée de la façon d'appliquer des modèles de conception dans les frameworks PHP Explication détaillée de la façon d'appliquer des modèles de conception dans les frameworks PHP Jun 09, 2023 am 11:55 AM

PHP est un langage de programmation largement utilisé dans le domaine du développement Web, et les modèles de conception sont une méthode de résolution de problèmes largement utilisée en génie logiciel. L'application de modèles de conception peut améliorer les performances des logiciels sous de nombreux aspects tels que l'évolutivité, la maintenabilité et la réutilisabilité, et peut effectuer des tâches plus rapidement et réduire la duplication de code. En PHP, les modèles de conception sont souvent utilisés pour améliorer les performances du framework et mieux organiser et gérer le code. Étant donné que le framework doit gérer une grande quantité de logique métier et de processus métier complexes, les modèles de conception peuvent aider les développeurs

Comment garantir l'unicité du singleton dans Golang ? Comment garantir l'unicité du singleton dans Golang ? Mar 06, 2024 am 08:03 AM

Titre : Garantir l'unicité du singleton dans Golang En programmation, le modèle singleton est un modèle de conception courant utilisé pour garantir qu'une classe n'a qu'une seule instance et fournit un point d'accès global. Dans Golang, nous pouvons implémenter le modèle singleton en utilisant le type Once et sync.Once dans le package de synchronisation pour garantir l'unicité du singleton. 1.sync.Once implémente le mode singleton Voici un exemple de code qui utilise sync.Once pour implémenter le mode singleton : packagesingle.

See all articles