今天我们来谈谈设计模式中的单例模式,单例模式也叫单件模式。他的意思是: 一个类只有一个实例。
如果你初次听到这个模式,可能不太理解这个模式到底有什么用。这里举一些例子给大家。
比如我有一个工具箱窗体 每点击一次按钮 都会实例化一个工具箱,用户点击多次,就会弹出多次工具箱窗口,所以在这里,我们就需要工具箱这个类只有一个实例,就要用到我们的单例模式了。
今天就以安卓里sqlite的访问操作为例,为大家讲解一下单例模式。
一般来讲,为了方便操作,我们都会定义一个数据库工具类,里面封装了一个SQLiteOpenHelper类,对安卓中SQLite不熟悉的同学快去恶补一下吧~
首先,新建一个类,里面封装了一个静态的自身属性。
public class DBUtils { public static String DB_NAME = "database"; private static DBUtils dbUtils; private DBHelper dbHelper; private SQLiteDatabase sqLiteDatabase;
private DBUtils(Context context){ dbHelper = new DBHelper(context,DB_NAME); sqLiteDatabase = dbHelper.getWritableDatabase(); }
public static DBUtils getDBUtils(Context context){ if(dbUtils == null){ dbUtils = new DBUtils(context); } return dbUtils; }这样,别的类需要访问数据库的时候,只需要进行如下操作,这样保证了这个类不会被多次实例化,一定程度上增加了安全性。也避免了重复创建多个对象。
mDbUtils = DBUtils.getDBUtils(mContext);
private static DBUtils dbUtils = new DBUtils(context);
Activity的四种启动方式