وقتی می خواهید یک کلاس SQLiteHelper بسازید، کلاس شما باید از کلاس SQLiteOpenHelper ارث ببرد و در constructor خود constructor کلاس پدر را با کلمه کلیدی super فراخوانی کند:
public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
امضای constructor کلاس پدر بصورت زیر است:
public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version)
همانطور که مشاهده می کنید بعنوان پارامتر سوم باید یک شئ از کلاس CursorFactory به constructor کلاس پدر ارسال کنیم. CursorFactory مشخص کننده رفتار SQLiteCursor است و معمولا ما مقدار null را برای کلاس پدر ارسال می کنیم که مشخص می کند که ما می خواهیم از standard SQLiteCursor استفاده کنیم. در صورتی که بخواهیم از SQLiteCursor که رفتار خاصی دارد و توسط خود ما پیاده سازی شده است استفاده کنیم باید یک کلاس factory بنویسیم که از کلاس Cursor ارث ببرد و سپس یک شئ از CursorFactory پیاده سازی شده توسط خودمان را به constructor کلاس پدر ارسال کنیم.
نکته: CursorFactory عملیات های لازم بر روی نتایج query های اجرا شده را برای ما انجام می دهد و معمولا پیاده سازی استاندارد آن برای تمامی کار ها کفایت می کند و پیاده سازی یک CursorFactory شخصی در مواقعی کاربرد دارد که می خواهیم عملیات های اضافه ای بر روی نتایج query انجام دهیم.