Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Main.Java
- public class Main {
- public static void main(String[] args) {
- ShoppingCart shoppingCart = new ShoppingCart();
- Item itemOne = new Item(23);
- Item itemTwo = new Item(42);
- shoppingCart.addItemToShoppingCart(itemOne);
- shoppingCart.addItemToShoppingCart(itemTwo);
- shoppingCart.pay(new CreditCardStrategy("Tobas", "123", "123", "Visa", "16/25"));
- }
- }
- ==============================================================================================================================
- ShoppingCart.Java
- import java.util.ArrayList;
- import java.util.List;
- public class ShoppingCart {
- private List<Item> items;
- public ShoppingCart(){
- this.items = new ArrayList<Item>();
- }
- public void addItemToShoppingCart(Item item){
- items.add(item);
- }
- public void removeItemFromShoppingCart(Item item){
- items.remove(item);
- }
- public int calculateTotalPrice(){
- int sum = 0;
- for(Item item : items){
- sum += item.getPrice();
- }
- return sum;
- }
- public void pay(PaymentStrategy paymentMethod){
- int amount = calculateTotalPrice();
- paymentMethod.pay(amount);
- }
- }
- ==============================================================================================================================
- Item.Java
- public class Item {
- private int price;
- public Item(int price){
- this.price = price;
- }
- public int getPrice(){
- return this.price;
- }
- }
- ==============================================================================================================================
- PayPalStrategy.Java
- public class PayPalStrategy implements PaymentStrategy{
- private String userName;
- private String password;
- public PayPalStrategy(String userName, String password) {
- this.userName = userName;
- this.password = password;
- }
- @Override
- public void pay(int amount) {
- System.out.println(amount + " paid with PayPal");
- }
- }
- ==============================================================================================================================
- CreditCardStrategy.java
- public class CreditCardStrategy implements PaymentStrategy{
- private String cardHolderName;
- private String cardNumber;
- private String cvv;
- private String cardProvider;
- private String dateOfExpiry;
- public CreditCardStrategy(String cardHolderName, String cardNumber, String cvv, String cardProvider, String dateOfExpiry) {
- this.cardHolderName = cardHolderName;
- this.cardNumber = cardNumber;
- this.cvv = cvv;
- this.cardProvider = cardProvider;
- this.dateOfExpiry = dateOfExpiry;
- }
- @Override
- public void pay(int amount) {
- System.out.println(amount + " paid with Credit Card");
- }
- }
- ==============================================================================================================================
- PaymentStrrategy.Java
- public interface PaymentStrategy {
- public void pay(int amount);
- }
Add Comment
Please, Sign In to add comment