Mam następujące warstwy dostępu do danych (DAL). Zastanawiałem się, czy jest poprawnie skonfigurowany, czy też muszę go poprawić?Jak poprawnie zaprojektować warstwę dostępu do danych?
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
{
}
że oddziela warstwę pamięci z klasy użytkownikowi dostęp do metody, która ponadto zbiór wywołać jakichkolwiek niestandardowych DAL.
Czy użycie static
w implementacji DAL jest poprawne?
Proszę zasugerować poprawki lub sposoby, w jakie mogę to ulepszyć. Nie mam dużego doświadczenia w pisaniu kodu w warstwach.
Jeśli nie możesz poświęcić czasu na dokładne przeliterowanie pytania (za pomocą Pl. Zamiast Please), to jak możesz oczekiwać, że ktoś poświęci czas na udzielenie odpowiedzi na twoje pytanie lub pomoc? –
@George, nie wiem, czy to kogoś boli, ale tylko po to, by ratować ludzi czytających zbyt dużo, używam tego regularnie. Zamiast tego skoncentrowałem się na spisaniu mojego przykładu. Nie znaczy to, że nie doceniam czasu ludzi i ich reakcji. –
Dlaczego chcesz to zrobić zamiast używać ORM jak LLBLGen lub Dapper? Nie trzeba wymyślać koła. –