不断学习不断进步的过程中,坚持用写作的方式记录学习成果真真是极好的习惯。最近笔者学习设计模式,正好有写博客的想法,于是第一篇博客就从设计模式中的一小个——单例模式讲起。
此文于php实现单例模式又略有些拓展,将使用单例模式的设计手法实现一个多例模式。应用场景如下:
因我公司的用户注册后每一个用户拥有一个独享的私人库,于是我们在代码实现的过程中会出来一个进程连接多个数据库的情况。然而对于数据库连接来说,一个进程中一个数据库连接一次关闭一次是再好不过的,于是使用单例模式实在是情理之中的事。两者结合,便有了以下内容。看官且莫嫌烦,搞清需求再代码实现真真是你们序员不可避免的正确的路子。
弄清楚需求后,我们就开始代码实现了:
<?php
class MysqlConn{
/*根据我们的需求,我们要连接不同的数据库,但是会有一个常用的数据库连接,因此定义几个常量作为连接数据库的缺省值*/
const HOSTNAME = "localhost";
const USERNAME = "root";
const PASSWORD = "password";
const DBNAME = "mysql";
const CHARSET = "utf8";
/*单例的精要所在便是一个类在一个进程只只生成一个对象,对于本类我们需要的只是数据库的连接句柄*/
/*instances 之所以为 static 是因为我们要用它来保存本类的唯一对象,于是需要在实例化对象之前对其是否存在进行判断*/
/*instances 之所以为 数组,是因为