Projetos concluídos no bootcamp JAVA GFT

Overview

GFT DIO bootcamp

Este repositório contem todos os projetos criados no decorrer do bootcamp GFT.

Para não criar repositórios diferentes deixei ambos os projetos em pacotes diferentes, dentro desse repositório. Para escolher o projeto de execução basta trocar a função principal. Explicarie como fazer isso ainda nesse arquivo README.


•Criando um Banco Digital com Java e Orientação a Objetos 🏦

De forma simplificada esse projeto visa exercitar os pilares da Programação Orientada a Objetox ( POO ) utilizando JAVA , simulando uma interação com um banco virtual, por meio do console. Os principais aspectos do projeto eram : abstração, encapsulamento, herança e polimorfismo. Na interação o usuário registra sua conta no aplicativo e manipula seus dados básicos como saldo, verificar saldo e verificar dados pessoais, por exemplo.

•Abstração 🤔

O conceito de abstração é muito útil para a tradução de entidades, ações ou processos do mundo real ou ideal para o mundo computacional e lógico. Entendendo a complexidade e as características do objeto de trabalho colabora para menor redundância e construção de projetos orientados a objeto, baseando seu comportamento em suas ações e como elas se relacionam com suas características.

A abstração também é utilizada para esconder detalhes complexos, de implementação por exemplo. Criando um código mais fácil de ser utilizado e atualizado, pois não é exigido dos desenvolvedores conhecimento total da estrutura e comportamento do sistema.

•Encapsulamento 📦

Encapsulamento se trata de isolar atributos e métodos de classes que não são nessecários fora da classe que pertencem. O maior isolamento interno de comportamentos e características evita modificações desnecessárias nos objetos e diminui as relações de dependências de processo. Com dependecia de processo quero dizer que quando objetos encapsulados interagem entre sí eles não são afetados pela forma que recebem certo resultado, mas sim pelo resultado propriamente dito, portanto a manutenção de um código bem encapsulado é menos custosa e mais eficiênte.

•Herança 👩‍👩‍👦

Classes são estruturas de dados heterogeneos que além de informações possuem comportamentos ( funções ), sendo portanto criadas para a melhor modularização e organização, proporcionando estabiliodade em códigos de larga escala. O conceito de herança visa a reutilização de código e aprimoramento de conceitos como abstração e polimorfismo. A partir da herança, características comuns de uma certa categoria, que posteriormente viria a se tornar um objeto, podem ser encapsuladas e passadas a diante para inúmeras classes sem a necessidade de reescrita de código, e caso alguma mudança seja necessária na base operacional dessa categoria ( ou seja, na classe que é herdada por todas as demais ) por exemplo, a manutenção e aprimoramento do algoritimo são feitos em apenas um lugar. Dessa forma a herança proporciona grande escalabildiade.

•Polimorfismo 🦋

Polimorfismo consiste na abstração ideal de tipos, métodos e classes. A partir do polimofrismo podemos criar classes genéricas, métodos com mesma assinatura, porém diferentes parametros, que exercem implementações, não necessáriamente, diferentes e podem ou não ter resultados diferentes. Podendo criar em superclasses, por exemplo, métodos que posteriormente venham a ser específicados em subclasses

O polimorfismo é um assunto complexo e de grande extenção, de forma superficial podemos definilo assim, porém eu recomendaria formente uma leitura sobre o assunto!


•Explorando Padrões de Projetos na Prática com Java

[[ ...descrição aqui ... ]]

•Singleton 👤

Singleton é um termo matemático, que significa conjunto único. Em suma é um design pattern que visa limitar a quantidade de instâncias de um certo objeto á 1, fazendo assim com que mesmo que esse objeto seja requerido em outros, ao invés de uma nova instância ser criada, utiliza-se apenas uma referência, por exemplo. Garantindo que objetos vitais, e exclusivos, existam de maneira singular e comuniquem-se com demais objetos, caso necessário

•Strategy 📚

O encapsulamento de métodos em um línguagem orientada a objetos se da por classes e interfaces, mas muitas pode-se desejar criar comportamentos, algorítimos específicos para resolção de certos problemas, de formas diferentes. Utilizar uma interface é de fato muito atraente nesses casos, porém, quando se precisa de maiores especificações e modularização, ou reutilização da interface em grande escala, em um certo padrão, as coisas podem ficar repetitivas e confusas. O design pattern Strategy funciona encapsulando comportamentos, métodos, em classes, e criando instâncias dessas classes no objeto de uso, que agora, ao invés de ter uma interface, tem diversos padrões comportamentais instânciados e pode trocar de acordo com necessário entre cada um. Criando um código mais sustentável e reutilizável.

•Facade 🏬

Quando consumimos uma API web, por exemplo, não sabemos toda a complexidade por trás, apenas como acessa-la e seu resultado, que satisfaz idealmente nossa requisição. O design pattern facade é muito similar ao exemplo de funcionamento de uma API, porém existe para abstrair diferentes camadas de um sistema, simplificando classes e a comunicação entre elas, por meio de classes intermediárias, por exemplo, criando assim um nível de abstração maior. Da mesma forma que APIs abstraem sua complexidade, interfaces abstraem sua funcionalidade, designs facade abstraem a comunicação entre diferentes setores de um sistema.

Padrões de design são um assunto muito mais extenso e discutivel, espero ter sido capaz de explicar de forma simples e coerente o conceito básico de cada um, caso se interesse, recomendo uma leitura sobre o assunto!



Matheus Maues Sarto - 13/05/2022
You might also like...

"Some" Utilities you can use for your Java projects "freely"! Files are compiled with Java-8 and above, but mostly Java-11.

✨ Java-SomeUtils 🚀 "Some" Utilities you can use for your Java projects "freely"! *"Freely"* forcing you to include the license into your program. Fil

Jan 6, 2023

Java-Programs---For-Practice is one of the Java Programming Practice Series By Shaikh Minhaj ( minhaj-313 ). This Series will help you to level up your Programming Skills. This Java Programs are very much helpful for Beginners.

Java-Programs---For-Practice is one of the Java Programming Practice Series By Shaikh Minhaj ( minhaj-313 ).  This Series will help you to level up your Programming Skills. This Java Programs are very much helpful for Beginners.

Java-Programs---For-Practice is one of the Java Programming Practice Series By Shaikh Minhaj ( minhaj-313 ). This Series will help you to level up your Programming Skills. This Java Programs are very much helpful for Beginners. If You Have any doubt or query you can ask me here or you can also ask me on My LinkedIn Profile

Nov 8, 2022

(Java & React) Yazılım Geliştirici Yetiştirme Kampı Java kısmına ait yazılan kaynak kodlar ve ödev çalışmalarım.

(Java & React) Yazılım Geliştirici Yetiştirme Kampı Java kısmına ait yazılan kaynak kodlar ve ödev çalışmalarım.

JavaCamp Kamp sürecinde yazılan kaynak kodlar ve ödev çalışmalarım. Day 1 1)Intro Day 2 2)oopIntro 2.1)oopIntro ~ Homework Day 3 3)oopIntro2 3.1)inher

Jun 26, 2022

☁ Tencent Cloud IM Server SDK in Java | 腾讯云 IM 服务端 SDK Java 版

Tencent Cloud IM Server SDK in Java The Tencent Cloud IM Server SDK for Java enables Java developers to easily work with Tencent Cloud IM. Requirement

Dec 23, 2022

Trust-java - Test Results Verification library for Java

TRUST - Test Results Verification library for Java The TRUST's primary goal is to provide the simple way of different test results verification. Gener

Nov 19, 2017

Changelog-java-version - Eine Auflistung der Änderungen in Java aus Sicht eines Entwicklers.

Changelog Java Versions Eine Auflistung der Änderungen in Java aus Sicht eines Entwicklers. Inhaltsverzeichnis Zugehörige Präsentation Homepage des Au

Jan 4, 2022

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

May 21, 2022

Library for converting from one Java class to a dissimilar Java class with similar names based on the Bean convention

Library for converting from one Java class to a dissimilar Java class with similar names based on the Bean convention

Beanmapper Beanmapper is a Java library for mapping dissimilar Java classes with similar names. The use cases for Beanmapper are the following: mappin

Nov 15, 2022

Free and 100% open source Progressive Java Runtime for modern Java™ deployments supported by a leading OpenJDK contributor

BellSoft Liberica JDK is a build of OpenJDK that is tested and verified to be compliant with the Java SE specification using OpenJDK Technology Compat

Dec 22, 2022
Owner
Matheus Sarto
Estudando programação por paixão e buscando uma carreira na área !
Matheus Sarto
Desafio Técnico GFT Start #5

GFT Start Java Esta mentoria tem como objetivo ajudar os Devs participantes do Programa GFT Start #5 Java a resolver o Desafio Técnico que será propos

Camila Cavalcante 28 Sep 20, 2022
Ferramenta de Gerenciamento de Projetos de Software utilizando a metodologia Ágil Scrum e Gamification com Webflux e Mongodb

Task Flow Application Getting started To make it easy for you to get started with GitLab, here's a list of recommended next steps. Already a pro? Just

Rodolfo Gonçalves de Luna Freire 1 Oct 22, 2021
Biblioteca completa para ajudar em seus projetos.

MattLib Uma biblioteca completa para seus projetos, com funções que abrangem desde de banco de dados como MySQL, SQLite, PostgreSQL, MariaDB a verific

Matheus Colin 18 Sep 7, 2022
📊It includes all the work done during the Java-React Bootcamp.

?? Java + React Bootcamp ?? Part 1 - Java Part 2 - React ?? Lecture Class: Youtube ?? Instructor: Engin Demirog ?? Course Materials: Kodlama.io Bootca

İlknur Sucaklı 20 Jun 21, 2022
İnnova-Patika Java Spring Bootcamp - > Bitirme Projesi -> Backend

İnnova-Patika Java Spring Bootcamp - > Bitirme Projesi -> Backend

Murat Ali KIŞTAN 6 May 1, 2022
☕️🚀🚨 This repository consists of solutions for the Community Classroom complete DSA Java Bootcamp assignment problems.

Java DSA Bootcamp ?? Assignments Go to Kunal Kushwaha's ????‍?? course repository : ☕️ Java DSA Bootcamp ⚠️ ?? this repository is now inactive due to

Milind Mishra⚡️ 106 Dec 12, 2022
Tech Elevator Bootcamp Exercises and Projects

TechElevatorExercises A folder for all my Tech Elevator endeavors as I learn full-stack development bootcamp-style.

Kai Indigo Wolf 1 Jul 24, 2022
Project developed in Block 1 through the Generation bootcamp

PROJETO JAVA - CCHIV COMBATE CONTRA O HIV COMO SURGIU ? É um software criado para facilitar a forma de atender o público de pessoas portadoras do HIV

Paulo Brisola 4 Jul 5, 2022
🏫 Testing Workshop for Factoria F5 Bootcamp

ms-test--factoriaf5-testing ?? Testing Workshop for Factoria F5 Sample used in Adevinta Spain's Factoria F5 masterclasses Develop Clone/fork this repo

Adevinta Spain 4 Mar 2, 2022
Projeto realizado durante o bootcamp da Generation.

Projeto de conclusão do BlOCO - I QUAL A MISSÃO DO PROJETO? Disseminar a cultura de doação voluntária de sangue entre a população. O POSSO DOAR nasceu

Kathleen Caroline 1 Oct 19, 2021