Acesso Colaboradores

The Last of Us como Metáfora para Orientação a Objetos

Publicado em por Beatriz Muniz

The Last of Us como Metáfora para Orientação a Objetos The Last of Us como Metáfora para Orientação a Objetos

🎬 The Last of Us como Metáfora para Orientação a Objetos

No último domingo (13/04/2025), estreou a segunda temporada de The Last of Us. Bastou o episódio começar pra eu mergulhar de novo naquele mundo pós-apocalíptico de decisões difíceis, fungos bizarros e personagens marcantes.

Enquanto acompanhava Joel e Ellie, comecei a pensar em como dá pra usar esse universo como pano de fundo pra explicar alguns conceitos de programação — mais especificamente, Programação Orientada a Objetos (POO).

Se você também curte aprender com exemplos mais práticos (ou mais dramáticos), bora explorar como a estrutura do mundo de The Last of Us pode ajudar a visualizar POO de forma mais intuitiva.

🧠 O que é Programação Orientada a Objetos (POO)?

A Programação Orientada a Objetos é um paradigma de desenvolvimento que organiza o código em torno de entidades chamadas objetos, que combinam dados (atributos) e comportamentos (métodos). Ao invés de um conjunto de funções soltas, temos estruturas organizadas e reutilizáveis.

Esse modelo é ideal para representar sistemas complexos — como, por exemplo, o próprio universo de The Last of Us.

🧍 Objetos e Classes: Joel, Ellie e os Infectados

Em POO, uma classe representa um tipo de entidade, e um objeto é uma instância específica dessa classe. Em The Last of Us, por exemplo, podemos ter:

class Sobrevivente {
    string Nome;
    string Arma;

    void Atacar(string inimigo) {
        Console.WriteLine($"{Nome} atacou {inimigo} com {Arma}");
    }
}

Joel e Ellie são objetos da classe Sobrevivente. Cada um tem seus próprios atributos e comportamentos, mas compartilham a mesma estrutura básica.

🔁 Herança: toda ameaça tem um ancestral comum

Herança permite que classes compartilhem comportamentos, evitando duplicação de código. Por exemplo, podemos ter uma classe base Infectado e classes derivadas para cada tipo:

class Infectado {
    public virtual void Atacar() {
        Console.WriteLine("Ataca de forma genérica.");
    }
}

class Estalador : Infectado {
    public override void Atacar() {
        Console.WriteLine("Dá um grito horrível e morde.");
    }
}

Todos os infectados têm comportamento de ataque, mas cada tipo pode especializar o seu jeito. Essa flexibilidade é uma das maiores forças da POO.

🌀 Polimorfismo: mesma interface, comportamentos diferentes

Com polimorfismo, você pode tratar objetos de subclasses como se fossem da superclasse, e o comportamento certo ainda será executado.

Infectado infectado = new Estalador();
infectado.Atacar(); // Saída: Dá um grito horrível e morde.

Isso permite escrever código mais genérico e reutilizável, mesmo quando trabalhamos com classes diferentes.

🔒 Encapsulamento: esconda o caos, exponha só o necessário

Encapsulamento é o princípio de esconder detalhes internos de implementação, expondo apenas o que for necessário para uso externo. Exemplo:

class Ellie {
    private int saude = 100;

    public void Sobreviver() {
        Console.WriteLine("Ellie se esconde e cuida dos ferimentos.");
        saude += 10;
    }
}

O resto do sistema não precisa saber como a saúde dela aumenta, apenas que o método Sobreviver() está disponível.

🔗 Composição: Joel + Ellie = 💀 menos chance de morte

Composição é quando uma classe é formada por outras. Em The Last of Us, Joel e Ellie funcionam melhor juntos:

class Dupla {
    public Joel joel;
    public Ellie ellie;

    public void Explorar() {
        joel.Andar();
        ellie.ProcurarSuprimentos();
    }
}

Essa união entre objetos forma sistemas mais complexos, que colaboram entre si para resolver tarefas maiores.

🎮 Conclusão: POO é sobrevivência (com menos fungo)

Assim como em The Last of Us, um código bem estruturado com POO é mais resiliente, modular e fácil de evoluir. Personagens, infectados e interações podem ser modelados como objetos, cada um com seus papéis, limitações e comportamentos únicos.

Se Joel e Ellie conseguem sobreviver com trabalho em equipe e estrutura, seu código também pode. Só não deixe ele virar um estalador com public static void Main de 500 linhas.

← Voltar ao ínicio