POJOs

Ultimamente tenho notado em listas de discussão, blogs, etc., pequenas confusões em relação ao termo POJO.

Algumas pessoas acham que POJO é sinônimo de JavaBean. Não é. JavaBean é uma especificação de um modelo de componentes. Os beans são componentes de software reutilizáveis que podem ser manipulados por ferramentas visuais para a criação de componentes compostos, applets, aplicações, etc.

Como um construtor público sem parâmetros e gets/sets públicos para os atributos são requisitos necessários (mas não suficientes) para um objeto atender à especificação JavaBean, alguns acham que POJO é sinônimo de objetos com construtores públicos e gets/sets para os atributos. Não é.

O termo foi criado por Martin Fowler, Rebecca Parsons e Josh MacKenzie e significa Plain Old Java Object ou Simples e Velho Objeto Java. Segundo o próprio Fowler, o termo foi criado ao preparem uma palestra para uma conferência em setembro de 2000. Nessa palestra eles mostravam diversos benefícios de se utilizar objetos comuns, simples, no lugar de algo mais pesado como EJBs, para implementar lógica de negócios. Eles não entendiam porque as pessoas tinham resistência em utilizar tais objetos comuns para lógica de negócios e chegaram a conclusão de que isso acontecia pois estes objetos não tinham uma denominação de efeito, que causa impacto. Então, criaram POJO.

Ou seja, um POJO nada mais é que um objeto simples, que não depende de implementar interfaces ou herdar de classes de algum framework externo. Não é, necessariamente, um JavaBean (mas pode ser). Não é, necessariamente, um objeto que tem getters e setters públicos para todos os seus atributos (mas pode ser).

3 Responses to POJOs

  1. Diogo Santos says:

    Fala, Guilherme.

    Eu acabei de postar no meu blog e também falo de POJO, mas é sobre o livro POJOs in Action.

    abraço!

  2. Bom Post, principalmente para os leigos de java como eu🙂

  3. Bem legal o post, Cirne!
    É impressionante como certos conceitos – por mais simples que sejam – sejam tão mal compreendidos.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: