Articles of design patterns

Instancie a class passando o parâmetro necessário, dependendo do ambiente em que você está

Eu tenho uma class enum abaixo que tem poucos campos em stagePoolSize , prodPoolSize e enabled . public enum Type { process_caty(5, 8, false), process_misc1(5, 8, false), link_entry(5, 12, true); private final int stagePoolSize; private final int prodPoolSize; private final boolean enabled; private Type(int stagePoolSize, int prodPoolSize, boolean enabled) { this.stagePoolSize = stagePoolSize; this.prodPoolSize = […]

Nice maneira de padrão de método de fábrica com inheritance

Suponha que eu tenha a seguinte hierarquia de classs: class abstract Parent{} class FirstChild extends Parent {} class SecondChild extends Parent {} E gostaria de criar objects DTO de cada filho: class abstract ParentDTO {} class FirstChildDTO extends ParentDTO{} class SecondChildDTO extends ParentDTO{} Eu acho que preciso de um método de fábrica algo como isto: […]

methods de marcação e chamando-os de um object cliente por tag

Eu tenho tentado descobrir uma maneira de marcar vários methods da minha class base, para que uma class de cliente possa chamá-los por tag. O código de exemplo é: public class Base { public void method1(){ ..change state of base class } public void method2(){ ..change state of base class } public void method3(){ ..change […]

É melhor ter um mecanismo de cache dentro ou fora de uma class Factory?

minha pergunta aqui não é estritamente relacionada a linguagem, é mais um conceito geral de programação. Se eu tenho uma class Factory que possui um método para retornar objects do Parser, e essas classs de analisadores, eu sei, não precisam ser instanciadas mais de uma vez por ciclo de iteração (fora da fábrica, é claro). […]

mesclar uma entidade desanexada ou nova com uma entidade existente na questão de prática recomendada do hibernate / jpa

Quando a camada de negócios cria uma nova entidade, que representa logicamente uma instância de uma entidade existente que deve ser atualizada (digamos que compartilham a mesma chave de negócios), esse método de fusão de práticas ruins é mesclado? public User add(User user){ User existingUser = getUserDao().findByBusinessKey(user.getBusinessKey(), false); user.setId(existingUser.getId()); user = getUserDao().merge(user); return user; } […]

Como implementar políticas de repetição ao enviar dados para outro aplicativo?

Eu estou trabalhando no meu aplicativo que envia dados para zeromq . Abaixo está o que meu aplicativo faz: Eu tenho uma class SendToZeroMQ que envia dados para zeromq. Adicione os mesmos dados a retryQueue na mesma class, para que possam ser repetidos mais tarde, se a confirmação não for recebida. Ele usa o cache […]

usando ScheduledExecutorService para iniciar e parar o cronômetro

De minhas leituras, parece que ScheduledExecutorService é o caminho certo para iniciar e parar cronômetros em Java. Eu preciso portar algum código que inicia e interrompe um timer. Este não é um timer periódico. Este código interrompe o cronômetro antes de iniciá-lo. Então, efetivamente, toda partida é realmente uma reboot (). Eu estou procurando o […]

Como upcast Java 8 Objetos opcionais?

Existe uma maneira eficiente de realizar upcasting ao usar um object opcional. Aqui está um código de exemplo: class A{} class B extends A{} B func(){ //do something return new B(); } Optional func2(){ //do something return Optional.of(new B()); } main() { A a = func(); // Upcasting works fine B b = func(); // […]

Por que o Scanner implementa o Iterator ?

Eu estava apenas me perguntando por que o java.util.Scanner implementa o java.util.Iterator ? Scanner implementa o método remove e lança uma UnsupportedOperationException . Mas não deveria uma class, ao implementar uma interface, cumprir o contrato da interface? Qual é o uso da implementação do iterator e da adição de um método que lança uma exceção? […]

Como implementar o padrão de comando via CDI?

Eu sou novato em CDI e um pouco confuso. Eu tenho o seguinte problema. Nós temos ação de class. E nós temos a class wrapper que mantém todos os objects Action no hashmap. Algo assim. class TestAction implements Action{ @EJB private MyBean bean; public void doSomething(){ //here we do something with injected EJB } } […]