Neo-liberalismo √ Brasileira

Só para não ficar sem postar nada devido a falta de tempo de preparar algo, posto aqui matéria da revista Primeira Leitura sobre o suposto neo-liberalismo brasileiro.
Avaliem esses n√ļmeros e me digam se existe neo-liberalismo no Brasil.

Neo-liberalismo √ Brasileira
A avers√£o do Brasil ao capital aparece em ranking do Bird, pais ocupa o 119¬ļ lugar em uma lista de 155 na√ß√Ķes testadas sobre as facilidades para fazer neg√≥cios.

Classificação Geral
Brasil: 119¬ļ lugar
Abrir uma empresa
Brasil: 98¬ļ lugar
Lidar com licenças
Brasil:115¬ļ lugar
Contratar e demitir
Brasil:144¬ļ lugar
Registrar propriedades
Brasil:105¬ļ lugar
Conseguir Crédito
Brasil:80¬ļ lugar
Proteção a sócios minoritários
Brasil: 53¬ļ lugar
Pagar impostos
Brasil:140¬ļ lugar
Negociar com o exterior
Brasil:107¬ļ lugar
Garantir os contratos
Brasil:70¬ļ lugar
Fechar empresas
Brasil:141¬ļ lugar

Horas/ano que uma empresa gasta para preencher documentos e pagar tributos
Brasil—2.600
China——584
Argentina–580
M√©xico—–536
Chile——432
√ćndia——364
Austr√°lia–107

Crescimento do PIB per capita (1994-2004)
Brasil—11,9
R√ļssia—36,6
Chile—-38,2
Cor√©ia—49,7
Irlanda–92,6
China—110,5

Paises de renda alta:–20,8
Paises de renda média:-35,6
Paises de renda baixa:-37,6

Padr√Ķes de projeto de software

Uma dificuldade que tenho, e acredito que muitos tem, √© de encontrar c√≥digos simples implementados com conceitos de padr√Ķes de projeto de desenvolvimento de software, por isso postarei aqui toda semana um exemplo de como implementei algo nesse contexto, de forma que venha ajudar a quem est√° iniciando no aprendizado e para aqueles que j√° implementaram podendo contribuir com melhorias no conceito ou sugest√Ķes.
Não quero me alongar em histórico de design patterns ou forma técnica de demonstrar um pattern, explicando contexto, problema, solução, etc. Para isso aconselho aos livros clássicos sobre o assunto ou pesquisas em portais que tratam os patterns dessa forma. Vou direto para a dica de implementação com apenas um pequeno descritivo da necessidade de tal padrão.

Necessidade
Para esse artigo inicial vou demonstrar como solucionei uma necessidade de paginação de forma reaproveitavél utilizando os fundamentos da programação orientada a objetos.
O exemplo est√° utilizando JAVA como linguagem mas pode muito bem ser utilizada em outras linguagens orientadas a objetos.

Padr√Ķes
Para solucionar essa necessidade utilizei o Pattern Iterator e o Template Method.

Implementação
Primeiro criei uma Interface onde defini quais métodos seriam implentados para essa necessidade.

C√≥digo…

Interface

Classe de Exception auxiliar…

Exception

Então criei uma classe Abstrata que implementa métodos comuns a todas as classes concretas que venham a extendê-la. Um detalhe é que utilizei o conceito de Template Method e deixei alguns métodos a serem implamentados na classe concreta, dessa forma controlo o funcionamento interno de navegação da paginação e deixo aberto para extensão de especificidades da aplicação do programador.

C√≥digos da classe abstrata…

1
2
3
4
5

Observe que não implementei os métodos:
public String getCmd();
public void setCmd(String cmd);
public Collection getGrid();
deixando a cargo do programador implement√°-los.

N√£o pretendo me ater sobre as funcionalidades de cada m√©todo, devo apenas ressaltar que o inteiro cache √© relativo ao n√ļmero de elementos da lista por p√°gina.

Utilização
Vejamos como utilizar essa estrutura:

Vamos criar uma classe que seja uma lista de objetos a serem percorridos na paginação.
Essa classe ter√° que implementar nossa Interface e estender a classe abstrata.

C√≥digo da classe…

EquipeListHandler

Vejam que tive que implementar os m√©todos que a classe abstrata n√£o fez por conta da obrigatoriedade que a Interface causa por implement√°-la. Criei um construtor que recebe uma lista de valores e o n√ļmero de elementos que aparecem em cada p√°gina.

Voce instancia em seu controle da seguinte forma:

Business

Esse código é apenas um exemplo de como utilizar a estrutura, existem mais possibilidades.

Na p√°gina jsp eu poderia acess√°-lo da seguinte forma:

jsp

Utilizo uma variação na criação do Manipulador (Handler), usando uma fábrica para encontrar a classe exata.
Exemplo…

ValueListIterator equipeHandler = ListFactory.getListIterator(“Equipe”);
equipeHandler.setTamanhoCache(10);
equipeHandler.setList(…);

Depois testo se o objeto j√° est√° instanciado e se estiver seto o comando especifico.
equipeHandler.setCmd(acao);

C√≥digo da Fabrica…

ListFactory

Espero n√£o ter complicado por falta de explica√ß√Ķes maiores, mas eu queria somente demonstrar como utilizei determinados Padr√Ķes na resolu√ß√£o de uma necessidade espec√≠fica.

Referências

http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
http://java.sun.com/blueprints/corej2eepatterns/Patterns/ValueListHandler.html
http://www.corej2eepatterns.com/catalog.htm
http://www.corej2eepatterns.com/Patterns2ndEd/ValueListHandler.htm
http://www.javamagazine.com.br/edicoes/jm21/index.jsp
http://www.javamagazine.com.br/edicoes/jm20/index.jsp

Excelente, de onde retirei grande parte do conceito.
http://www.mundooo.com.br/php/modules.php?name=News&file=article&sid=512

Download do código do artigo
http://www.amigos-list.org/~cmilfont/source/src_pattern_1.zip