Skip to content

ErickFerrari9/Modelagem-POO-com-Java-e-UML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📱 Projeto iPhone - Modelagem POO com Java e UML

Este projeto simula a modelagem orientada a objetos de um componente iPhone, inspirado no lançamento do dispositivo em 2007. O foco é representar as principais funcionalidades como:

  • 🎵 Reprodutor Musical
  • 📞 Aparelho Telefônico
  • 🌐 Navegador de Internet

🧠 Principais Insights do projeto

1. Interface como contrato

O uso de interfaces (ReprodutorMusical, AparelhoTelefonico, NavegadorInternet) ensina como separar o que uma classe deve fazer do como ela faz. Cada funcionalidade do iPhone é modelada como um comportamento isolado e reutilizável.

✔️ Insight: Em projetos reais, interfaces facilitam a manutenção, testes e a troca de implementações.


2. Implementação Múltipla com POO

A classe iPhone implementa múltiplas interfaces, permitindo herdar comportamentos distintos. Essa prática reforça a ideia de herança múltipla de comportamento via interfaces (o que não é possível com classes em Java).

✔️ Insight: Permite ao desenvolvedor criar classes ricas em funcionalidade sem depender de herança complexa.


3. Encapsulamento

Mesmo em um projeto simples, cada método está encapsulado dentro da classe, com sua responsabilidade clara. Isso facilita a leitura, manutenção e testes de unidade.

✔️ Insight: Métodos bem nomeados e com responsabilidade única aumentam a qualidade do código.


4. Separação de Responsabilidades

Cada interface trata apenas de um conjunto de ações relacionadas (música, telefone, navegador), aplicando o princípio da responsabilidade única (SRP) do SOLID.

✔️ Insight: Separar responsabilidades previne classes "Deus", tornando o código mais modular e reutilizável.


5. Testabilidade

A modelagem com interfaces permite simular funcionalidades facilmente com mocks em testes unitários.

✔️ Insight: Projetos orientados a interfaces são mais fáceis de testar, pois o comportamento pode ser substituído sem depender da implementação real.


6. Representação UML como forma de planejamento

Antes mesmo de codar, foi construído um Diagrama UML, facilitando o entendimento da arquitetura geral e ajudando no design antes da implementação.

✔️ Insight: Diagramar ajuda a visualizar interações e identificar falhas de design antecipadamente.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages