2016-03-29 4 views
0

Ich habe ein Setup von Klassen mit einem DAOManager und separaten DAO-Klassen für die Tabellen, mit denen ich interagieren muss. Wenn ich ein Objekt aus der DB einfügen oder löschen möchte, müssen die Objekte validiert werden. Soll ich die Objekte in den entsprechenden Methoden in der DAOManager-Klasse oder in den bestimmten DAO-Klassen validieren? Es ist natürlich auch möglich, die Objekte zu validieren, bevor der DAOManager überhaupt aufgerufen wird. Welche Option ist am besten?DAOManager - sollte die Objektvalidierung hier oder in den spezifischen DAO-Klassen durchgeführt werden?

public class DAOManager { 
    public void insertIntoTable(Object obj) { 
    //Validate here? 
    exampleDAO.insert(Object obj); 
    } 
} 

public class ExampleDAO() { 
    public void insert(Object obj) { 
    //Or validate here? 

    //Insert logic... 
    } 
} 

Antwort

1

Ich würde Wahl die Möglichkeit, eine abstrakte Klasse „ObjectValidation“ mit einem Verfahren validateOnInsert(), validateOnDelete() zu erstellen ...

Die alles verkaufen einzelne DAO sollte diese Klasse implementieren und fügen Sie die bestimmte Logik für die Validierung, wenn Sie nur eine Validierung für Ihre DAO-Rückgabe nicht wahr und den Manager-Prozess fortsetzen.

public class ExampleDAO() extends DAOValidation{ 
    public void insert(Object obj) { 
     if(validationOnInsert(obj)){...} 
    } 
    public boolean validateOnInsert(Object obj) { 
     //your validation here 
    } 
    public boolean validateOnDelete(Object obj) { 
     //your validation here 
    } 
} 

Wahrscheinlich unterschiedliche Menschen haben unterschiedlichen Ansatz, es zu lösen, aber ich denke, die DAO ist die Klasse, die über all Business-Logik der Klasse selbst sollte der Manager fungiert nur als Händler, die fragen Aktionen des wissen sollte DAOs