Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package statepattern;
package behavior.statepattern;

public class Client {
public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package statepattern;
package behavior.statepattern;

import statepattern.state.OffState;
import statepattern.state.PowerState;
import statepattern.state.SavingState;
import behavior.statepattern.state.OffState;
import behavior.statepattern.state.PowerState;
import behavior.statepattern.state.SavingState;

public class LaptopContext {
private PowerState powerState;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package statepattern.state;
package behavior.statepattern.state;

import statepattern.LaptopContext;
import behavior.statepattern.LaptopContext;

public class OffState implements PowerState{

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package statepattern.state;
package behavior.statepattern.state;

import statepattern.LaptopContext;
import behavior.statepattern.LaptopContext;

public class OnState implements PowerState{

Expand Down
7 changes: 7 additions & 0 deletions src/behavior/statepattern/state/PowerState.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package behavior.statepattern.state;

import behavior.statepattern.LaptopContext;

public interface PowerState {
void pushPowerButton(LaptopContext context);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package statepattern.state;
package behavior.statepattern.state;

import statepattern.LaptopContext;
import behavior.statepattern.LaptopContext;

public class SavingState implements PowerState{

Expand Down
20 changes: 20 additions & 0 deletions src/behavior/strategypattern/Client.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package behavior.strategypattern;

import behavior.strategypattern.context.Item;
import behavior.strategypattern.context.ShoppingCart;
import behavior.strategypattern.strategy.MasterCardStrategy;
import behavior.strategypattern.strategy.MobilePayStrategy;

public class Client {
public static void main(String[] args) {
ShoppingCart cart = new ShoppingCart();
cart.addItem(new Item("Macbook Pro", 10000));
cart.addItem(new Item("IPhone", 2000));

cart.setPaymentStrategy(new MasterCardStrategy("Dmori", "1234-1234-1234-1234", "123"));
cart.pay();

cart.setPaymentStrategy(new MobilePayStrategy("example@naver.com", "12345"));
cart.pay();
}
}
16 changes: 16 additions & 0 deletions src/behavior/strategypattern/context/Item.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package behavior.strategypattern.context;

public class Item {

private String name;
private int price;

public Item(String name, int price) {
this.name = name;
this.price = price;
}

public int getPrice() {
return price;
}
}
32 changes: 32 additions & 0 deletions src/behavior/strategypattern/context/ShoppingCart.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package behavior.strategypattern.context;

import behavior.strategypattern.strategy.PaymentStrategy;

import java.util.ArrayList;
import java.util.List;

public class ShoppingCart {

private List<Item> items;
private PaymentStrategy paymentStrategy;

public ShoppingCart() {
this.items = new ArrayList<>();
}

public void addItem(Item item) {
this.items.add(item);
}

public void setPaymentStrategy(PaymentStrategy paymentStrategy) {
this.paymentStrategy = paymentStrategy;
}

public void pay(){
int amount = 0;
for (Item item : items) {
amount += item.getPrice();
}
this.paymentStrategy.pay(amount);
}
}
19 changes: 19 additions & 0 deletions src/behavior/strategypattern/strategy/MasterCardStrategy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package behavior.strategypattern.strategy;

public class MasterCardStrategy implements PaymentStrategy {

private String name;
private String cardNumber;
private String cvv;

public MasterCardStrategy(String name, String cardNumber, String cvv) {
this.name = name;
this.cardNumber = cardNumber;
this.cvv = cvv;
}

@Override
public void pay(int amount) {
System.out.println(amount + " Won paid using Master Card");
}
}
17 changes: 17 additions & 0 deletions src/behavior/strategypattern/strategy/MobilePayStrategy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package behavior.strategypattern.strategy;

public class MobilePayStrategy implements PaymentStrategy {

private String email;
private String password;

public MobilePayStrategy(String email, String password) {
this.email = email;
this.password = password;
}

@Override
public void pay(int amount) {
System.out.println(amount + " Won paid using Mobile Pay");
}
}
5 changes: 5 additions & 0 deletions src/behavior/strategypattern/strategy/PaymentStrategy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package behavior.strategypattern.strategy;

public interface PaymentStrategy {
void pay(int amount);
}
7 changes: 0 additions & 7 deletions src/statepattern/state/PowerState.java

This file was deleted.