单例模式入门总结

原创 2018-11-27 09:46:18 240
摘要:单例模式:即一个类只被实例化一次,当其他人对其再次实例化时,便返回第一次实例化的对象。这种模式可以极大地节约资源。典型应用于数据库类的实例化。单例模式的主要特点是“三私一公”:1.需要一个保存类的唯一实例的私有静态成员变量2.构造函数必须声明为私有的,实例化类时,会自动调用类的构造方法,防止外部程序new一个对象从而失去单例的意义3.克隆函数必须声明为私有的,防止对象被克隆4.必须提供一个访问这个

单例模式:即一个类只被实例化一次,当其他人对其再次实例化时,便返回第一次实例化的对象。这种模式可以极大地节约资源。典型应用于数据库类的实例化。


单例模式的主要特点是“三私一公”:


1.需要一个保存类的唯一实例的私有静态成员变量

2.构造函数必须声明为私有的,实例化类时,会自动调用类的构造方法,防止外部程序new一个对象从而失去单例的意义

3.克隆函数必须声明为私有的,防止对象被克隆


4.必须提供一个访问这个实例的公共静态方法,从而返回唯一实例的一个引用。在类内部实例化对象。实例化前先判断该类是否已被实例化了,若已被实例化,就返回该实例化对象;若没被实例化,便实例化一个对象并将该对象保存在类的静态属性中

<?php
	// 私有静态成员变量
	privated static $instance = NULL;

	// 私有构造函数
	privated function __construct()
	{
		# code...
	}
	// 私有克隆方法
	private function __clone()
	{
		# code...
	}

	// 访问实例的公共静态方法
	public static function getInstance()
	{
	  if(!(self::$instance instanceof self))
	  {
	  	self::$instance=new self();
  	}
  	return self::$instance;
	}
 ?>


批改老师:韦小宝批改时间:2018-11-27 13:55:07
老师总结:写的很不错!设计模式要多练才可以!课后记得多多练习!

发布手记

热门词条