Pergunta

Vejo um uso intenso de objetos "store" no aplicativo da web em que estou trabalhando.Existe um nome para esse padrão e você diria que esses tipos estão no BLL ou DAL?

Esses armazenamentos contêm fragmentos do que eu consideraria um tipo DAL clássico, associado a um único tipo.

Por exemplo, temos um TabStore contendo métodos para persistência e recuperação de Tabs.Dentro de cada método no TabStore existe um código para invocar a consulta NHibernate apropriada.

Quais são as armadilhas (se houver) de trabalhar com esse padrão?É realmente uma simples tentativa de separar o que antes poderia ter sido um tipo Dal monolítico em tipos menores e mais gerenciáveis?

Método de exemplo:

public IList<Tab> GetAllTabInstancesForUserId(Guid userId)
{
    IList<Tab> tabInstances =
                UoW.Session.CreateQuery("from Tab t where t.UserId=:userId order by t.TabOrder")
                   .SetGuid("userId", userId)
                   .SetCacheable(true)
                   .List<Tab>();

    return tabInstances;
}
Foi útil?

Solução

Pode ser o que é mais comumente conhecido como Repositório.

O Repositório abstrato pertence ao Modelo de Domínio, mas deve ser implementado por classes concretas em um separado Componente de acesso a dados.

Outras dicas

Se bem entendi a pergunta, "lojas" estão mais relacionadas ao DAL do que ao BLL, já que deveria haver pouca lógica nelas - afinal o papel delas é apenas "armazenar".

Mais alguns detalhes seriam definitivamente úteis, incluindo trechos de código onde a 'loja' é usada ...

Mas com base no que você tem em sua pergunta, parece que os desenvolvedores usaram o termo 'loja' em vez de 'Repositório', o que implica o Padrão de repositório (que estão relacionados à sua camada de acesso a dados).

Após sua atualização... definitivamente parece que o que os desenvolvedores originalmente chamaram de 'loja' é um 'repositório'.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top