Pessoa bom dia aqui vai uma duvida.
Estou fazendo um sistema que em um determinado cliente usara um tipo de impressora , em outro cliente outro tipo de impressora e é possível que no mesmo cliente use mais de um tipo de impressora.
Então eu não gostaria de encher de if else ou mesmo case, então gostaria de aplicar um padrão , quase apliquei o strategy, mais inda estou na duvida entre ele e o abstracty factory.
Os tipos de impressoras estaram gravados em um campo em uma tabela no banco e quando o sistema subir pegar o tipo e estancia a classe correta.
Exemplo : impressora Daruma classe Daruma , impressora Bematech classe Bematech e seus respectivos metodos.
Ai uma classe impressora que vai instancia uma delas , mais a classe impressora precisa saber qual usar.
E ai quem sugeri ,ou alguém já pegou algo parecido implementou e deu certo ?
Bom dia Ricardo,
A Daruma tem uma Camada JNA para fazer comunicação com as impressoras, conheça um pouco mais sobre esta camada:
http://www.daruma.com.br/ddemkt/dde012_2011.html
Esta camada é multiplataforma também, roda em Linux e Windows, sem mexer uma linhazinha de código…
Com relação a utilizar duas marcas de ECF, geralmente vejo o pessoal chamar a função rRetornarInformacao_ECF_Daruma, e verificar o modelo para ver se é com algum cadastrado no bco de dados, e no banco de dados conter todos os modelos no qual seu aplicativo e homologado.
Ou verificar a marca do ECF…que no caso ele lhe retornara “Daruma” ai você utiliza nossa camada…
Qualquer duvida estamos à sua inteira disposição…
Já tem impressora ai? Se não tiver me manda um email: social.developer@daruma.com.br
Um forte abraço…
Sim tenho impressora, uma fiacal FS700 estou usando a camada JNA, quanto ao acesso a impressora por enquanto esta sem problema, o que eu queria saber era outra coisa
na, se existe um padrão para esta solução que tenho que aplicar.
Use o strategy para intercambiar as implementações das diferentes impressoras e use o factory method para criar as instâncias polimorficas, retirando isso da aplicação. Seu caso é igualzinho a abordagem JDBC.