Skip to content

Instantly share code, notes, and snippets.

View alexduarte's full-sized avatar

Alexsander Duarte Pimenta alexduarte

  • IFood
  • São Paulo
View GitHub Profile
public class EmAprovacao implements EstadoDeUmOrcamento {
public void aplicaDescontoExtra(Orcamento orcamento) {
orcamento.valor -= orcamento.valor*conceDesconto(0.05);
}
public void aprova(Orcamento orcamento) {
public class Orcamento {
protected double valor;
protected EstadoDeUmOrcamento estadoAtual;
public Orcamento(){
this.estadoAtual = new EmAprovacao();
}
public Orcamento(double valor){
this.valor = valor;
public class IKCV extends TemplateDeImpostoCondicional {
public IKCV(Imposto outroImposto) {
super(outroImposto);
}
public IKCV(){}
public class ImpostoMuitoAlto extends Imposto {
public ImpostoMuitoAlto(Imposto outroImposto) {
super(outroImposto);
}
public ImpostoMuitoAlto() {
public abstract class Imposto {
private final Imposto outroImposto;
public Imposto(Imposto outroImposto){
this.outroImposto = outroImposto;
}
public Imposto(){
import java.util.Date;
public class Conta {
private String titular;
private String banco;
private String telefone;
private double saldo;
private int numeroConta;
private int numAgencia;
import java.util.ArrayList;
public class IHIT extends TemplateDeImpostoCondicional {
;
public boolean deveUsarMaximaTaxacao(Orcamento orcamento) {
return existe(orcamento);
}
public abstract class TemplateDeImpostoCondicional implements Imposto {
public double calcula(Orcamento orcamento) {
if(deveUsarMaximaTaxacao(orcamento)){
return maximaTaxacao(orcamento);
}
else {
return minimaTaxacao(orcamento);
public class DescontaPorCincoItens implements Desconto {
private Desconto proximo;
public double desconta(Orcamento orcamento) {
if(orcamento.getItens().size()>5){
return orcamento.getValor()*0.1;
}
public class Conta {
private double saldo;
private String nomeDoTitular;
public Conta(String nomeDoTitular, double saldo){
this.nomeDoTitular = nomeDoTitular;
this.saldo = saldo;