Ho il seguente livello di accesso ai dati (DAL). Mi stavo chiedendo se è impostato correttamente, o se ho bisogno di migliorarlo?Come si progetta un Data Access Layer in modo appropriato?
public class User
{
}
//Persistence methods
static class UserDataAccess
{
UsersDAL udal = // Choose SQL or FileSystem DAL impl.
InsertUser(User u)
{
// Custom logic , is 'u' valid etc.
udal.Insert(u);
}
}
abstract class UsersDAL
{
GetUserByID();
InsertUser(u);
...
}
// implementaitons of DAL
static class UsersSQLStore : UsersDAL
{
}
static class UsersFileSystemStore : UsersDAL
{
}
ho separato lo strato di stoccaggio dalla classe utente per accedere raccolta metodi che chiamano ulteriormente qualsiasi DAL personalizzato.
L'utilizzo di static
nell'implementazione DAL è corretto?
Si prega di suggerire correzioni o modi per migliorarlo. Non ho molta esperienza con la scrittura di codice a strati.
Se non riesci a trovare il tempo necessario per spiegare la tua domanda (usando Pl. Invece di Please), allora come ti aspetti che qualcuno si prenda il tempo per rispondere alla tua domanda o aiutarti? –
@George, non so se questo fa male a qualcuno, ma solo per salvare le persone che leggono troppo, lo uso regolarmente. Invece mi concentrai a scrivere il mio esempio. Ciò non significa che non appiazzerò il tempo delle persone e le loro risposte. –
Perché dovresti farlo invece di usare un ORM come LLBLGen o Dapper? Non c'è bisogno di reinventare la ruota. –