Код IT
← Каталог

Классификация типов классов в объектно-ориентированном проектировании — RepositoryImpl — реализация доступа к данным

Фрагмент из «Классификация типов классов в объектно-ориентированном проектировании»: RepositoryImpl — реализация доступа к данным.

csharp projectencyclopedia7-06-proektirovanie-i-arhitektura-112 embed URL статья в энциклопедии
C# main.cs
public class PostgresUserRepository : IUserRepository
{
    private readonly IDbConnection _db;
    
    public User? FindById(Guid id)
    {
        // Запрос JOIN users, user_profiles, user_settings
        // Маппинг в User (с Address, Preferences как Value Objects)
        // Возврат полного агрегата
    }
    
    public void Save(User user)
    {
        // BEGIN TX
        // INSERT/UPDATE users
        // INSERT/UPDATE user_profiles
        // INSERT/UPDATE user_settings
        // COMMIT
    }
}
public class PostgresUserRepository : IUserRepository
{
    private readonly IDbConnection _db;
    
    public User? FindById(Guid id)
    {
        // Запрос JOIN users, user_profiles, user_settings
        // Маппинг в User (с Address, Preferences как Value Objects)
        // Возврат полного агрегата
    }
    
    public void Save(User user)
    {
        // BEGIN TX
        // INSERT/UPDATE users
        // INSERT/UPDATE user_profiles
        // INSERT/UPDATE user_settings
        // COMMIT
    }
}