Dividir para Conquistar?

Ola Pessoal !
Em relação a arquitetura WEB com Struts, a parada é a seguinte:
Possuo um form de cadastro simples com as ações ‘Incluir’ , ‘Excluir’ e ‘Alterar’, tudo referente a mesma classe de negocio, imaginei primeiramente criar um Action do Struts para cada ação, mas agora me pergunto se não seira melhor criar um único Action e dentro dele chamar no classe de negocio o método da ação especifico…Que vc´s acham ??

So pra constar, tenho só 2 meses de desenvolvimento Java na Web

Abraços!

Use várias Ations. Usar uma só é acoplamento de controle.

[]s

Eu costumo usar apenas UMA Action para este caso. A sua Action do Struts teria que estender a classe DispatchAction.

Hum…saquei, mas na Dispatch então eu estaria chamando as outras actions ou diretamente o objeto de negocio e seus métodos de inclusão/alteração e exclusão ?? Melhorando a pegunta, criaria os métodos necessários nela.

Na verdade entre o Action e as classes de negócio você deveria usar um Business Delegate.

Mesmo acessando apenas uma classe Business ??
E esse delegate eu preciso cria-lo ?

DispatchAction

[code]public class MeuDispatchAction extends DispatchAction {
public ActionForward fazIsso( … ) {
MeuBD mbd = new MeuBD();
mdb.fazIsso();
}

public ActionForward fazAquilo( … ) {
}
}[/code]

Business Delegate

[code]public class MeuBD {
public void fazIsso( … ) {
MinhaCN cn = new MinhaCN();
cn.fazIsso();
}

public void fazAquilo( … ) {
}
}[/code]

Classe de Negócio

[code]public class MinhaCN {
public void fazIsso( … ) {
}

public void fazAquilo( … ) {
}
}[/code]

Rapaz!!! Valeu ! Eu tava perguntado sobre o BD pq poderia ja ter alguma implementação dele pronta, mas pelo que vi é bem simples!!!

Muito Obrigado!!
Thanxs!!

Para essas operacoes CRUD acho legal ter apenas uma Action tambem. Se puder utilizar a versao 1.2 do Struts, olhe a MappingDispatchAction, que ja agiliza o trampo: http://struts.apache.org/api/org/apache/struts/actions/MappingDispatchAction.html

Daniel, qual seria a funcao do BusinessDelegate nesse cenario? Ele atua apenas como um intermediario entre a Action e as Classes de Negocio repassando todas as solicitacoes Action --> Negocio? Que problema haveria de arquitetura se chamassemos o Negocio direto da Action?

Ou isso seria mais para utilizacao com EJB?

Marcio Kuchma

Eu entendo o Business Delegate (e sempre tento utilizá-lo) como um objeto entre as regras de negócios e o cliente (no caso uma Action do Struts). O Objetivo é caso haja uma alteração nas regras de negócios, o cliente não tenha muitas alterações. Isso é muito importante quando você tem vários clientes (Action do Struts, Action do Webwork, um Controller para projetos Swing e assim vai).

Fora que seu clietne não rpecisa se estressar com RMI, JNDi, RemoteHome blahblabla… nossa, só isso vale o Pattern.

Tá, antes que o cv leia este tópico e coloque o comentário padrão #054 sobre IoC, falamos de um mundo imperfeito onde as pessoas cismam em usar EJB e JSP. :stuck_out_tongue:

[]s

Acho que já responderam por mim. Valeu galera.

Toda vez que voce usa Struts, Deus mata um bebe foca. Pense nas pobres foquinhas, e parem de usar esse lixo. Por favooooooooooooooooooor.

O maior anti-pattern de todos: cv.

UAhuahaua uAH uhA uHAuAH uAH AUh UHAua
Don´t take me wrong, dudeee! 8)

Um business delegate é um nome diferente para use-case facade ou role facade, dependendo da forma que você implementar o BD.

AFFFF! Escroto! hauehaiouehoiuahoeiuaoheiuiuae! :lol:

cada vez que voce menciona a palavra St**ts, Deus mata um bebe foca

[quote=danieldestro]DispatchAction

[code]public class MeuDispatchAction extends DispatchAction {
public ActionForward fazIsso( … ) {
MeuBD mbd = new MeuBD();
mdb.fazIsso();
}

public ActionForward fazAquilo( … ) {
}
}[/code]

Business Delegate

[code]public class MeuBD {
public void fazIsso( … ) {
MinhaCN cn = new MinhaCN();
cn.fazIsso();
}

public void fazAquilo( … ) {
}
}[/code]

Classe de Negócio

[code]public class MinhaCN {
public void fazIsso( … ) {
}

public void fazAquilo( … ) {
}
}[/code][/quote]

mas que o exemplo ficou bonitinho, ficou sim.

Um novo palindromo! :mrgreen:

Marcio Kuchma

Um novo palindromo! :mrgreen:[/quote]

huahuhauhahuhuahuahuahuhuahua
boa! :lol: