Como apliquei POO em um projeto pessoal pequeno: um estudo de caso de um Console App C\
✨ Introdução
Ao aprender C# e me aprofundar no ecossistema .NET, decidi iniciar um projeto pessoal simples: um simulador de blog em formato Console App. A ideia era desenvolver uma aplicação que permitisse adicionar, listar, atualizar e remover posts, já com a visão futura de transformá-la em uma aplicação web fullstack usando ASP.NET Core no backend e Angular no frontend.
O que mais me surpreendeu é que, mesmo em um projeto pequeno, acabei aplicando diversos conceitos fundamentais de Programação Orientada a Objetos (POO). Neste artigo, compartilho esse estudo de caso, explicando como cada conceito foi usado na prática.
🪡 Contexto do projeto
O projeto consiste em:
- Um modelo de dados chamado
Post
- Um serviço chamado
PostService
que realiza operações CRUD - Um menu de interação no
Program.cs
que atua como interface de texto
🔐 Encapsulamento
Encapsulamento é o conceito de proteger os dados internos de um objeto, expondo apenas o necessário através de métodos públicos.
Onde usei:
- Na classe
Post
, onde os dados são representados como propriedades comget; set;
- No
PostService
, a lista interna de posts é privada e só pode ser manipulada por métodos comoAddPost()
,RemovePost()
eUpdatePost()
List<Post> posts = new List<Post>(); // encapsulada dentro do serviço
🔹 Abstração
Abstração é sobre esconder detalhes complexos e mostrar apenas o essencial.
Onde usei:
-
Program.cs
não acessa diretamente a lista de posts, ele apenas chama os métodos dePostService
- A lógica de como os posts são armazenados, buscados ou editados fica escondida dentro do serviço
Isso separa bem a responsabilidade entre interface com o usuário e lógica de negócio.
🏢 Responsabilidade Única (SRP)
Cada classe no projeto tem uma única responsabilidade:
Classe | Responsabilidade |
---|---|
Post |
Representar os dados de um post |
PostService |
Gerenciar a lógica de negócio e CRUD |
Program.cs |
Gerenciar o menu e entrada do usuário |
Essa separação facilita testes, manutenção e futura expansão para API.
👨💼 Instanciação de objetos
Criei objetos com new
a partir das classes, como por exemplo:
- Criar um post:
Post newPost = new Post { Title = ..., Content = ..., Author = ... };
- Usar o serviço:
PostService postService = new PostService();
🌐 Próximos passos
- Migrar este projeto para ser uma API ASP.NET
* Criar interface Angular para consumir a API
🚀 Conclusão
Mesmo em um projeto simples e pequeno, consegui aplicar de forma natural os principais conceitos de programação orientada a objetos. Isso me mostrou que entender bem POO é uma base essencial para crescer como desenvolvedor.
Esse projeto ainda vai evoluir para algo maior (uma aplicação fullstack), mas já me deu uma base sólida e realista sobre boas práticas de organização de código.
Se você estiver aprendendo C# ou iniciando na carreira, recomendo fortemente começar com algo pequeno, mas bem estruturado. A experiência de aplicar POO na prática faz toda a diferença!
Repositório: PortfolioBlog no GitHub