A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho.

Apresentações semelhantes


Apresentação em tema: "The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho."— Transcrição da apresentação:

1 The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho

2 Objetivo Disseminar o conhecimento prático de desenvolvimento na fábrica

3 Resumo  Como rodar o sistema ?  O que é uma classe básica (Entidade) ?  O que é uma classe RepositorioXxxBDR ?  PreparedStatament  Pra que serve a interface Repositório ?  O que é uma classe Cadastro?

4 Resumo  Por que usar Fachada?  O que é um Servlet ?  O que freemarker faz ?  Como é o nosso Servlet ?  Para que servem os Handlers ?  Como são os nossos Handlers ?

5 Como rodar o sistema ?  Modificar os parâmetros: arquivo_config e templatePath do arquivo factprocess/piloto/Projeto/piloto/WEB-INF/web.xml Isso pode ser feito em qualquer editor de texto

6 Como rodar o sistema ?  Modificar o parâmetro HOME do arquivo factprocess/piloto/Projeto/conf/piloto.properties  Clicar no botão Run Project do JBuilder

7 O que é uma classe básica?  A classe básica representa as principais entidades de um sistema. package thefactory.piloto.studant; public class Studant { private String name; private String password; public Studant( String name, String password ){ setName( name ); setPassword( password ); } public String getName() { return name; } public void setName( String name ) { this.name = name; }

8 O que é uma classe RepositorioXxxBDR ?  É classe responsável por fazer acesso ao SGBD-Relacional public class RepositoryStudantDB implements RepositoryStudant { private static final String sqlRemove = "delete from fabrica2_studant where cpf = ?"; public void remove( String cpf ) throws RepositoryException { // Envia comando sql de remover estudante do BD substituindo a “?” pelo “cpf” }

9 PreparedStatament  Usa-se PreparedStatament para que a aplicação fique “independente” do SGBD utilizado. Connection connection; try {// recupera connection, cria e executa o statement connection = TransactionControl.getConnection(); PreparedStatement preStmt = connection.prepareStatement( this. sqlRemove ); preStmt.setString( 1, cpf ); preStmt.executeUpdate(); } catch ( Exception e ) { throw new RepositoryException( e ); }

10 Pra que serve a interface Repositório ?  Uma interface em Java serve para que possa haver vários tipos de implementação diferente para o mesmo serviço. RepositorioXx RepositorioXxBDR RepositorioXxFile RepositorioXxList

11 O que é uma classe Cadastro?  É uma classe de negócios que contem um Repositório e pode acrescentar lógica de negócios nos métodos RepositorioXx CadastroXx

12 O que é uma classe Cadastro? public class StudantBusiness { private RepositoryStudant repository; public StudantBusiness( RepositoryStudant rep ) { this.repository = rep; } public void remove( String cpf ) throws RepositoryException { if ( ( cpf != null ) && ( cpf.length() == 11 ) ) { repository.remove( cpf ); } else { throw new IllegalArgumentException( "CPF invalid." ); }

13 Por que usar Fachada?  O sistema segue o padrão de projeto “Facade”  A fachada serve como ponto único de acesso ao sistema. Isso possibilita a construção de n GUI (Graphic User Interface)  A Fachada deve implementar o padrão de projeto singleton. FachadaCadastroXx

14 Por que usar Fachada? public class Facade { private static Facade instance; private Facade() { this.studants = new StudantBusiness( new RepositoryStudantDB() ); } public synchronized static Facade getInstance() { if ( instance == null ) { instance = new Facade(); } return instance; }

15 Por que usar Fachada? public void removeStudant( String cpf ) throws RepositoryException, Exception { Transaction transaction = null; boolean ok = false; try { // criar transaction transaction = TransactionControl.beginTransaction(); studants.remove( cpf ); TransactionControl.commitTransaction( transaction ); ok = true; } finally { if ( !ok ) { TransactionControl.rollBackTransaction( transaction ); } TransactionControl.endTransaction( transaction ); }

16 O que é um Servlet ?  Servelt é uma classe Java que serve para atender requisições do usuário através de algum protocolo. No nosso sistema protocolo HTTP  O Servlet gera uma Thread para cada requisição ServletHttpServletNosso Servlet

17 O que é um Servlet ? public class ServletBroker extends HttpServlet { public void init( ServletConfig servletConfig ) throws ServletException { super.init( servletConfig ); } public void service( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { // Request é a requisição do usuário // Response é a resposta que o servlet deverá prover }

18 O que freemarker faz ?  O freemarker possibilita isolar código HTML de código Java  Para isso o freemarker utiliza Tags e variáveis na página HTML ${s.cpf} - ${s.name}

19 O que freemarker faz ? SimpleHash modelRoot = new SimpleHash(); SimpleSequence seq = new SimpleSequence(); Iterator iter = facade.getIteratorStudants(); while ( iter.hasNext() ) { Studant item = ( Studant ) iter.next(); SimpleHash hash = new SimpleHash(); hash.put( "cpf", item.getCpf() ); hash.put( "name", item.getName() ); seq.add( hash ); } modelRoot.put( "studants", seq );

20 Como é o nosso Servlet ?  Vamos abrir o ServletBroker ?

21 Para que servem os Handlers ?  Handlers são classes que recebem a requisição do usuário (repassada pelo Servlet)  Analisam o request feito  Chamam algum método da fachada  Preparam a resposta para o usuário

22 Para que servem os Handlers ?  Vamos abrir o InsertStudantHandler ?

23 Referências  GUIA-DESEN-DefinicaoArquitetura.doc - http://cvs.factprocess.codigolivre.org.br/cgi- bin/cvsweb.cgi/~checkout~/fabrica/Desenvolv imento/Templates/GUIA-DESEN- DefinicaoArquitetura.doc?content- type=text/plain&cvsroot=factprocess http://cvs.factprocess.codigolivre.org.br/cgi- bin/cvsweb.cgi/~checkout~/fabrica/Desenvolv imento/Templates/GUIA-DESEN- DefinicaoArquitetura.doc?content- type=text/plain&cvsroot=factprocess  Freemarker - http://freemarker.sourceforge.net/ http://freemarker.sourceforge.net/


Carregar ppt "The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho."

Apresentações semelhantes


Anúncios Google