Skip to main content

Command Palette

Search for a command to run...

O que são POJOs em Java?

Updated
3 min read
O que são POJOs em Java?
A

My name is Lucas. I'm a journalist and software developer who can take photos, print zines and make videos, that's no joke. 📸📰🎬💻🕺😅

De forma simples e direta, POJO em Java são classes simples que armazenam e gerenciam dados.

POJO
Plain Old Java Objects
Plain Ordinary Java Objects

Java nos permite criar objetos de classes customizadas, esses objetos nos ajudam a armazenar e organizar dados.

Esses objetos podem armazenar dados nos seus campos (fields) e atuar como compartimentos para mover dados na aplicação.

Agora, quando essas classes são mantidas em uma estrutura simples, o Java se refere a elas como Plain Ordinary (or Old) Java Objects, ou simplesmente POJOs.

Simples aqui significa que essas classes não devem herdar de outras classes ou conter nada além da lógica básica necessária para armazenar esses dados.

Uma boa prática para criar classes POJO é que elas devem ser fáceis de criar, usar e entender.

  • Elas devem ser públicas

  • Devem ter getters and setters públicos

  • Seus campos devem ser privados

  • Por padrão, nenhum argumento deve ser passado ao seu construtor.

Os POJOs portanto devem ser simples e diretos, eles não estendem outras classe nem implementam interfaces.

Da mesma forma, POJOs geralmente não contém a lógica do negócio.

Essas não são regras rígidas, mas são boas práticas comuns que tornam nossas classes POJOs mais fáceis de ler e de usar.

// POJO class is public
public class Car { 

    // Fields are private
    private String model;
    private int year;

    // Default no arg constructor
    public String getModel() {
        return model;
    }

    // Public getters to access POJO data
    public int getYear() {
        return year;
    }

    // Public setters to set POJO fields
    public void setModel(String model) {
        this.model = model;
    }
    public void setYear(int year) {
        this.year = year;
    }
}

Casos de uso

A principal utilidade dos POJOs é estruturar dados de forma limpa, simples e independente. Eles são amplamente utilizados em cenários como: [1]

  • Transferência de Dados (DTOs): Transportar informações entre diferentes camadas de um sistema (ex: da interface do usuário para o banco de dados). [1, 2]

  • Modelagem de Domínio: Representar entidades reais (como "Usuário" ou "Produto") nas regras de negócio da aplicação. [1]

  • APIs e Integrações: Servir de base para a conversão de formatos complexos como JSON ou XML, facilitando a leitura de dados de serviços web. [1]

  • Mapeamento de Banco de Dados: Utilizados por frameworks de persistência (como o Hibernate) para ler e gravar dados em tabelas. [1, 2, 3, 4, 5]

Variações

Por fim, vale lembrar, que hoje existem variações amplamente difundidas e utilizadas dos clássicos POJOs. Essas variações possuem regras específicas, como os JavaBeans (que possuem serialização e construtor padrão vazio) ou os Records (introduzidos nas versões mais novas do Java para criar objetos imutáveis com menos código).