Duvidas em arquitetura

Olá pessoal, estou estudando uma arquitetura onde eu possa trocar de repositorio facilmente, como hora salvar os dados em um determinado banco de dados, outra salvar em xml, outras em txt e etc… afim de aprendizado, dei uma lida em diversos topicos aqui no guj e em blogs sobre o repository, domainstore, query object etc…

Para aprendizado utilizei uma entidade chamda CartaoCredito e outra chamada FaturaCartaoCredito, criei um repositorio para a FaturaCartaoCreditoRepository, coloquei o Repository no final para diferenciar da entidade FaturaCartaoCredito, nesse repositório tenho alguns métodos como getFaturasEmAberto, getFaturaDoMes etc…

Por fim, criei uma interface IDomainStore(o I geralmente é utilizado no .NET e eu acho interessante, pois batendo o olho você sabe que é uma interface), com alguns métodos como, save, delete e query, e algumas implementações do IDomainStore como TXTDao(Salva em arquivo texto), XMLDao(salva em XML) etc…

Eu criei um xml de configuração para trocar o tipo do DAO, eu instancio a classe definida nesse xml, e armazeno os dados conforme a classe configurada.

Até este ponto a arquitetura está correta ?

Caso sim, minha maior dúvida agora é quanto ao método query do meu IDomainStore, pois eu preciso de uma forma de saber a qual classe esses critérios pertencem, e buscar essas informações, por exemplo, no método getFaturaDoMes da classe FaturaCartaoDeCreditoRepository, eu chamo o método query do meu IDomainStore passando um objeto FaturaCartaoCreditoQuery com o mês preenchido e o numero do cartao de credito, na implementação dessa interface, como esse método vai saber que tem que buscar FaturasCartaoCredito com os parametros informados ? E quando eu passar por exemplo, query(CartaoCreditoQuery) com os dados preenchidos de um cartão com vencimento até x data ?

Obrigado!

Coloca um diagrama de classes do seu design, sem atributos/métodos (a não ser que seja essencial para o entendimento), só pra ficar mais fácil para as pessoas entenderem e por consequência conseguirem te ajudar. :slight_smile:

Abraço.

Eu não sei se isso ajuda, estou meio enferrujado na parte de analise hehehe

alguem ?

Bom dia;
Não entendi o que deseja, preciso que você descreva o problema ou a sua necessidade o mais alto nível possível.

não intendi oque vc quer ?

Em vez de perguntar “alguém?”, poderia ser mais claro na sua dúvida.