Skip to content

Instantly share code, notes, and snippets.

@alex-ber
Created July 24, 2021 18:38
Show Gist options
  • Select an option

  • Save alex-ber/52dd802de60290a4e7ca10a58ecfe098 to your computer and use it in GitHub Desktop.

Select an option

Save alex-ber/52dd802de60290a4e7ca10a58ecfe098 to your computer and use it in GitHub Desktop.
import java.util.Objects;
public class Pizza implements Delivarable {
public enum PizzaStatus {
IN_PROGRESS,
READY,
DELIVERED;
}
private PizzaStatus pizzaStatus = PizzaStatus.IN_PROGRESS;
private PizzaDeliveryStrategy strategy;
public Pizza(PizzaDeliveryStrategy strategy){
this.strategy = Objects.requireNotNull(strategy);
}
public void getStatus(PizzaStatus pizzaStatus){
return this.pizzaStatus;
}
public void setStatus(PizzaStatus pizzaStatus){
this.pizzaStatus = pizzaStatus;
}
@Override
public void deliver(){
if (isDeliverable()) {
this.strategy.deliver(this);
this.setStatus(PizzaStatus.DELIVERED);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment