单例模式是指在应用程序的范围内只对指定的类创建一个实例。
单例模式包含的对象只有一个,就是单例本身。使用单例模式的类通常有一个私有的构造函数和一个私有的克隆函数,确保用户无法通过创建对象或者克隆的方法对其进行实例化。除此以外模式中还包括一个静态私有成员变量$instance 与静态方法getInstance. getInstance 方法负责对其本身实例化,然后将这个对象存储在$instance静态变量中,以确保只有一个实例被创建。
以下是一个简单的单例模式例子,通过对单例属性$switch的设置实现了对开关状态的改变。
<?php
class Lock
{
static private $instance = NULL;
private $switch = 0;
static function getInstance(){
if(self::$instance == NULL){
self::$instance = new Lock();
}
return self::$instance;
}
private function Lock()
{
}
private function _clone()
{}
function setLock()
{
if($this->switch == 0)
{
$this->switch = 1;
}
else $this->switch = 0;
}
function getLock()
{
return $this->switch;
}
Lock::getInstance()->setLock();
if(Lock::getInstance()->getLock() == 0)
echo "开关状态:关";
else
echo "开关状态:开";
}
?>
分享到:
相关推荐
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法的情况。策略模式提供了一种将算法族封装到各自独立的类中,并在运行时选择具体...
1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式让算法的变化独立于使用算法的客户端。在提供...
### C++设计模式课件4_策略模式.pdf #### 知识点概览 - **设计模式概述** - **策略模式动机分析** - **模式定义与结构解析** - **策略模式应用实例** - **策略模式优缺点分析** #### 设计模式概述 设计模式是一种...
"实验一:鸭子游戏-策略模式.rar"这个压缩包文件显然是围绕Java编程语言中的策略模式来展开的一个教学实验。在这个实验中,我们将深入理解策略模式的核心概念、应用场景以及如何在实际编码中应用。 策略模式是一种...
本案例主要探讨了三种经典的设计模式:抽象工厂模式、工厂方法模式和策略模式,并以手机加工厂为实际应用场景进行阐述。 首先,**抽象工厂模式**是创建型设计模式之一,它提供一个接口,用于创建相关或依赖对象的...
在给定的文件中,提到了三种具体的设计模式:策略模式、简单工厂模式和工厂方法模式,以及一种抽象设计模式——抽象工厂模式。 1. **策略模式(Strategy Pattern)**: 策略模式定义了一系列的算法,并将每个算法...
"架构模式-反模式"的主题旨在揭示这些模式和反模式背后的原理,帮助开发者避免常见的设计陷阱,提高系统的质量和性能。J2EE(Java 2 Platform, Enterprise Edition)是一个广泛使用的平台,用于构建企业级应用,因此...
《HeadFirst策略模式》是设计模式领域的一本经典著作,其第一章主要介绍了策略模式的基本概念、原理以及在C++中的具体实现。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式允许我们用不同的...
策略模式是一种设计模式,它将特定情境下的行为或算法封装为独立的对象,使得这些行为可以在运行时动态地互换而不影响整体系统结构。这种模式强调的是将策略对象和使用策略的上下文对象解耦,从而提高了代码的灵活性...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在《设计模式18》-策略模式.ppt中,这个模式被详细地讲解,包括其定义、意图、适用性、结构、效果以及如何使用。 策略模式的核心思想是将算法族封装...
《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者为王翔。本书的核心目标是通过C#语言,系统地介绍和讲解设计模式在实际工程中的应用与拓展。设计模式是软件开发中经过实践验证的、可...
策略模式是一种设计模式,主要目的是将算法或策略的实现与使用它们的客户端代码解耦,使得算法可以在不修改客户端代码的情况下进行扩展或更改。在Java中,策略模式通常通过定义接口和实现这些接口的具体策略类来实现...
同时,由于行为被封装在单独的类中,鸭子类和其他使用策略模式的类可以保持简洁,遵循了单一职责原则。 在实际开发中,策略模式常用于处理复杂的业务逻辑,例如在电商系统中选择不同的配送策略,或者在游戏中调整...
- 策略模式(Strategy):定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法的变化独立于使用算法的客户。 - 模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤...
在本文中,我们将重点关注策略模式以及它与三个核心设计原则的关系。策略模式是一种行为设计模式,它使你能在运行时选择算法或策略。这种模式允许我们在不改变对象结构的情况下,替换算法,增加了代码的灵活性和可...
行为型模式则关注对象之间的交互和责任分配,比如观察者模式(Observer)、命令模式(Command)和策略模式(Strategy)。 王翔的书中,他会详细讲解每个模式的意图、适用环境、参与者及协作关系,以及模式实现的优...
《策略模式与单例模式在复试系统中的应用》 在软件设计中,模式是一种解决常见问题的可重用方案。策略模式和单例模式是两种常见的设计模式,它们在实际项目中有着广泛的应用。本篇文章将详细介绍这两种模式,并结合...
- **缺点**:破坏了单一职责原则,同时单例模式的实现容易成为系统中的耦合点。 4. **Builder模式** - **定义**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - **应用场景**...
- 策略模式 - 模板方法模式 - 观察者模式 - 迭代子模式 - 责任链模式 - 命令模式 - 备忘录模式 - 状态模式 - 访问者模式 - 中介者模式 - 解释器模式 设计模式的原则,被列举为: - 开闭原则(Open-Closed Principle...