名站导航为爱好php程序的朋友们提供php相关的教程知识。
PhP程序常用设计模式之单例模式5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
模式就像是OOP开发人员的配方,每种模式都提供了所需的成分。我们可以自定义模式的元素来解决特定的编程问题。单例模式就是PhP程序常用到的设计模式之一。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
在OOP中,一个对象之负责一个特定的任务通常是一种很好的做法。例如,你也许希望只让一个对象去访问数据库。单例模式被认为是职责模式,这是因为它将创建对象的控制委托到一个单一的访问点上。在任何时候,应用程序中都只会有这个类仅有的一个具体实例操作存在。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
多有的单例类至少拥有以下三种公共元素:5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
1、它们必须拥有一个构造函数,并且该构造函数必须使受保护的。即有关键字private关键字修饰。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
2、它们拥有一个保存类的具体实例操作的静态成员变量。强调是静态的成员变量。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
3、它们拥有一个访问这个具体实例操作的公共的静态方法。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
下面举一个单例模式的例子:5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
class Person{5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
private $name;5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
static $instance; //保存Person类的具体实例操作5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
private function __construct($name){ //必须有private修饰5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
$this->name=$name;5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
}5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
private __clone(); //防止对象被复制或克隆5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
public static function getInstance(){5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
if(!(self::$instance instanceof self)){5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
self::$instance = new self(); //具体实例操作化Person对象5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
}5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
return self::$instance; //返回该对象5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
}5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
public function run(){5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
echo $this->name."正在跑步";5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
}5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
}5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
现在,你已经看到了如何申明一个单例类,但是该如何使用它呢?5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
请看如下的具体代码如下:5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
$person = Person::getInstance();5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
$person->run();5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
通过调用getInstance()方法,$instance现在存有内部存储具体实例操作的引用。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
名站网址导航
PhP程序编码规范之注释规范5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
注释在每种语言中都有,理解不同的注释类型之间的区别是很重要的。有些注释是方便程序员阅读程序的,但是有些注释的内容实际上是和程序一起存储的。5cnAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!
好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,