应用场景:
- <李>
在一次http请求中,多个地方使用到了数据库连接,使用单例可以只需要创建一个连接。
李> <李>一个庞大的类被多次实例化的时候,会浪费巨大的内存空间。使用单例模式可以使多个对象共享内存中存在类的静态空间。
代码示例:
& lt; php ? ,,,//最后防止类被继承 ,,,final class DBHelper { ,,,,,,,//初始化实例,含义:install 美元;=,new DBHelper ()…… ,,,,,,,private static 实例美元=零; ,,,,,,, ,,,,,,,//构造器私有,防止类外部实例化 ,,,,,,,private function __construct () { ,,,,,,,,,,,//连接数据库操作 ,,,,,,,} ,,,,,,, ,,,,,,,//获取实例 ,,,,,,,public static function getInstance () { ,,,,,,,,,,,如果(! (self:: $ instance instanceof 自我)){ ,,,,,,,,,,,,,,,self:: $实例=new 自我; ,,,,,,,,,,,} ,,,,,,,,,,, ,,,,,,,,,,,return 自我::$实例; ,,,,,,,} ,,,,,,, ,,,,,,,//防止实例被克隆 ,,,,,,,private function __clone () { ,,,,,,,} ,,,,,,, ,,,},,,, ,,,,,,, ,,,, ?在
验证:
conn1=DBHelper:美元:getInstance (); 美元conn2=DBHelper: getInstance (); echo conn1 美元;===,美元conn2;