2014-08-07 4 views
0

У меня есть 2 дао, и мне нужно вызвать метод между нимивызов дао в другой для SQLite сделки

я сделал что-то вроде этого, но он с очень плохо, потому что это делает бесконечный цикл и это не уважает стандарт качества Каков правильный способ сделать это, пожалуйста? Большое спасибо

DAO 1

public class InfractionDAO { 


    private SQLiteDatabase database; 
    private SqLiteManager dbHelper; 
    private OffenderDAO offenderDAO; 


    public InfractionDAO(Context context) { 
    dbHelper = new SqLiteManager(context); 
    offenderDAO= new OffenderDAO (context); 
    } 

    List<Infractions> getInfractions(int id) { 
    offenderDao.getOffender(id); 
    } 
} 

DAO 2

public class OffenderDAO { 


    private SQLiteDatabase database; 
    private SqLiteManager dbHelper; 
    private InfractionDAO infractionDAO; 

    public OffenderDAO (Context context) { 
    dbHelper = new SqLiteManager(context); 
    infractionDAO = new InfractionDAO(context); 
    } 

Offender getOffender(int id) { 
    infractionDAO.getInfractions(id); 
} 
} 

ответ

1

Что бы я сделал, заключается в следующем:
Решение 1.
создать базовый класс (возможно сделать абстрактное?) для обоих, где они разделяют общие вещи и в каждом из отдельных классов, предложение и нарушение ставят разные вещи.
Решение 2.
Я бы создал одноэлементный класс, который в конструкторе инициализирует оба. , как в следующей ссылке:
http://pastebin.com/84g9SgFT

+0

большое спасибо. Решение 1 является лучшим и чистым :) – ulquiorra

Смежные вопросы