Хорошо ли иметь DatabaseManager со всеми функциями всех объектов модели?

Я работаю над приложением БД с ORmlite, моя модель похожа на эту:

Объект MDL..

DatabaseTable(tableName = "UserCars")
public class CarMDL
{
    @DatabaseField(generatedId = true)
    private int _id;

    @DatabaseField(columnName = "name")
    private String _name;

//................. etc
}

// DB Helper class...

public class DatabaseHelper extends OrmLiteSqliteOpenHelper
{
    private Dao<CarMDL,Integer> _carDao = null;

 @Override
    public void onCreate(SQLiteDatabase database,ConnectionSource connectionSource)
    {
        try 
        {
            TableUtils.createTable(connectionSource, CarMDL.class);

        } catch (SQLException e)
        {
            throw new RuntimeException(e);
        } catch (java.sql.SQLException e)
        {
            e.printStackTrace();
        }

    }

  public Dao<CarMDL, Integer> getCarDao() 
    {
        if (null == _carDao) 
        {
            try 
            {
                _carDao = getDao(CarMDL.class);

            }catch (java.sql.SQLException e) 
            {
                e.printStackTrace();
            }
        }
        return _carDao;
    }

}

// DatabaseManager class...

public class DatabaseManager
{
    static private DatabaseManager  instance;

    private DatabaseHelper  helper;


    static public void init(Context ctx)
    {
        if (null == instance)
        {
            instance = new DatabaseManager(ctx);
        }
    }

    static public DatabaseManager getInstance()
    {
        return instance;
    }

    private DatabaseManager(Context ctx)
    {
        helper = new DatabaseHelper(ctx);
    }

    private DatabaseHelper getHelper()
    {
        return helper;
    }

// All the Dao functions of all MDL objects are in this class, for example:

public List<CarMDL> getAllCars()
    {
        List<CarMDL> carLists = null;
        try
        {
            carLists = getHelper().getCarDao().queryForAll();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return carLists;
    }

// This is another MDL object..

public List<MarkMDL> getAllMarks()
    {
        List<MarkMDL> marks = null;
        try
        {
            marks = getHelper().getMarkDao().queryForAll();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return marks;       
    }

}

Итак, мой вопрос: хорошо ли иметь DatabaseManager со всеми функциями из всех объектов модели, например:

listCarById(int id)
listPlaneById(int id)
removeCar(int id)
removePlane(int id)

Etc.....

5
задан Bhargav Rao 23 March 2015 в 21:37
поделиться