Groovy é uma linguagem de programação baseada em JAVA, porem muito mais simples, e desburocratizada.
POJO( Plain Old Java Objects) para quem não sabe sobre Java, definem essencialmente o padrao JavaBeans.
JavaBeans na verdade não é uma API, e sim um conjunto de regras que devem ser aplicadas as classes JAVA.
Por exemplo:
–Toda classe Java deve possuir construtor publico (public class algumacoisa….)
–Todas as propriedades de uma classe sao acessíveis por metodos get, set e is (is para boolean)
entre outras regrinhas.
Em Groovy, nós temos o POGO (Plain Old Groovy Objects)
Vamos ver na pratica como Groovy descomplica as coisas.
ps.: Se vc programa em Java, vai ficar com raiva…..
vamos escrever uma classe simples em Java:
package domain;
/**
* Created by vinny on 12/12/15.
*/
public class Pessoa implements java.io.Serializable {
private String nome;
private String sobreNome;
private boolean ativo;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public boolean isAtivo() {
return this.ativo;
}
public void setAtivo(boolean valor) {
this.ativo = valor;
}
}
Uma classe básica que todos conhecem.
Mas e em Groovy, como ficaria? Agora vai dar raiva:
class Pessoa implements Serializable{//repare a primeira diferença String nome //sem pontovirgula String sobreNome //cadê os gets e sets? boolean ativo }
Explicando…
Todo atributo definido na classe groovy possui visibilidade pública. Calma, não acessaremos estes atributos diretamente.
veja este exemplo:
Pessoa pessoa = new Pessoa()
pessoa.setNome("Vinny")
printnl pessoa.getNome()
Oxe, de onde vem esse get e set? Vem automatico meu broder, Groovy gera automaticamente getters and setters.
Observe q a classe groovy faz exatamente o que a classe Java faz, com menos da metade do codigo.
Certo Vinny, e se eu quiser sobrescrever o metodo get por exemplo, eu posso? Claro q pode, veja este exemplo:
class Pessoa implementes Serializable{
String nome
String sobreNome
boolean ativo
String getNome(){
"meu nome é $nome"
}
}
Usando a nova classe
Pessoa pessoa = new Pessoa()
pessoa.setNome("vinny")
printnl pessoa.getNome();
// este ultimo codigo vai imprimir, "meu nome é vinny"
Tem como simplificar mais:
Pessoa pessoa = new Pessoa()
pessoa.nome = "vinny"
println pessoa.nome
No momento da referencia ao atributo “nome” e o que eu estou fazendo com ele, diz para o Groovy
como agir. Então se eu digo que pessoa.setNome(“vinny”), Grovvy ja sabe q tem de usar o metodo
Set(). Quando eu digo println pessoa.nome Groovy ja sabe q tem de usar o metodo Get().
Vamos agora brincar com os construtores. Vamos ver construtores dinâmicos.
Ex.:
Pessoa pessoa = new Pessoa(nome: "Vinny", sobreNome: "Parker")
println "${pessoa.nome} ${pessoa.sobreNome}"
// isto imprime Vinny Parker
O que eu quero mostrar com tudo isso? Existem muito mais exemplos que mostra como groovy é simples de trabalhar.
A questão toda é mostrar que com Groovy há menos burocracia e muito mais produtividade.
Em Java por exemplo toda classe publica deve obrigatoriamente ter o mesmo nome que o arquivo. Em groovy isso não é necessario.
Toda classe em groovy, por padrão é publica, e vc ainda pode declarar inumeras classes dentro do mesmo arquivo. Desde que tenha a extensao.groovy
Parte desse código que usei como exemplo, vem do Livro do Henrique Lobo, que trata de um framework chamado Grails. Quem quiser comprar bastar clicar aqui.