Code Monkey home page Code Monkey logo

cotacao-bolsa-valores's Introduction

Projeto Base que obtem a cotação de empresas da bolsa de valores (zip)

O projeto utiliza 3 serviços diferentes (Yahoo Finance, AlphaVantage e Quandl) para obter a cotação de empresas da bolsa de valores. São utilizas bibliotecas existentes para fazer acesso a estes serviços e o código disponibilizado mostra como usar cada uma destas bibliotecas.

Mas como observará, a forma de utilizar cada uma é totalmente diferente da outra. A partir deste código, altere o projeto criando 3 adaptadores: um pra cada uma das bibiliotecas dos serviços mencionados. Com isto, será possível trocar um serviço pelo outro sem alterar o código do projeto.

Adicionalmente, você perceberá que o código das empresas tem formato diferente em cada serviço. Como os adaptadores poderiam padronizar estes códigos e tornar o formato igual para todos os serviços?

No projeto disponibilizado, a classe Principal é na nossa classe Cliente: é ela quem usa os adaptadores. Analisando o novo código da classe principal, que outro padrão poderíamos aplicar em seguida?

cotacao-bolsa-valores's People

Contributors

thejamylle avatar

Watchers

James Cloos avatar  avatar

cotacao-bolsa-valores's Issues

Não precisa de classes como AlphaVantage

O AlphaVantageAdapter pode implementar a interface e já incluir o código existente em AlphaVantage.
Você não precisa criar uma classe AlphaVantage neste caso pois consegue colocar o código dela dentro da primeira.
No exemplo não tinha a classe AlphaVantage, foi mostrado apenas uma única classe com o código para todos os serviços.
O adaptador precisa apenas encapsular tal código para um serviço específico. Mas o adaptador já é a classe,
por isso, não precisa de uma classe adicional como AlphaVantage.

Dentro de AlphaVantage você tem objetos como AlphaVantageConnector e outros.
Colocando todo o código em AlphaVantageAdapter, você está encapsulando este objetos,
criando um adapter para o serviço do AlphaVantage, tornando ele compatível com uma interface comum.
Faça a alteração e verá que a não precisa da classe AlphaVantage.

O mesmo vale para os outros serviços.

public class AlphaVantageAdapter implements ServiceCotacao {
private AlphaVantage alphaVantage;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.