Skip to content

Solução de padrões de projeto #1

Description

@Juses24

public class Singleton {
private static Singleton instance;

private Singleton() {
    // Construtor privado para impedir a criação de instâncias diretas.
}

public static Singleton getInstance() {
    if (instance == null) {
        instance = new Singleton();
    }
    return instance;
}

}
// A classe Singleton garante que apenas uma instancia seja criada e fornecerá essa instancia sempre que getInstance() for chamado.


public interface PaymentStrategy {
void pay(int amount);
}

public class CreditCardPayment implements PaymentStrategy {
private String cardNumber;

public CreditCardPayment(String cardNumber) {
    this.cardNumber = cardNumber;
}

@Override
public void pay(int amount) {
    System.out.println("Pagamento de $" + amount + " com cartão de crédito " + cardNumber);
}

}

public class PayPalPayment implements PaymentStrategy {
private String email;

public PayPalPayment(String email) {
    this.email = email;
}

@Override
public void pay(int amount) {
    // Lógica para pagamento com PayPal
    System.out.println("Pagamento de $" + amount + " com PayPal usando o email " + email);
}

}

// Interface para a estratégia
// Implementações das estratégias
// Lógica para pagamento com PayPal
// Aqui, temos uma interface PaymentStrategy que define o contrato para as estratégias de pagamento. Em seguida, implementamos duas estratégias diferentes: CreditCardPayment e PayPalPayment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions