Hello, need help with this exercise in JAVA. We need to use the STATE DESIGN PATTERN.   GIVEN CODE: public class Pizza {  public final static int COOKED = 0;  public final static int BAKED = 1;  public final static int DELIVERED = 2;  int state = COOKED;  public int getState() {return state; }  public void setState(int state) {this.state = state; }  public void bake() throws Exception {  if(state == COOKED) {  System.out.print("Baking the pizza...");  state = BAKED; }  else if(state == BAKED) {  throw new Exception("Can't bake a pizza already baked"); }  else if(state == DELIVERED) {  throw new Exception("Can't bake a pizza already delivered");}  }  public void deliver() throws Exception {  if(state == COOKED) {  throw new Exception("Can't deliver a pizza not baked yet");  }  else if(state == BAKED) {  System.out.print("Delivering the pizza...");  state = DELIVERED; }  else if(state == DELIVERED) {  throw new Exception("Can't deliver a pizza already delivered"); }  }  }   EXERCISE: Refactor the pizza class using the state pattern. It could help if you draw a state machine for the transitions between states. In certain cases, a pizza's becomes undeliverable and will be eaten by the kitchen staff. Add this state to your solution

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Hello, need help with this exercise in JAVA. We need to use the STATE DESIGN PATTERN.

 

GIVEN CODE:

public class Pizza { 
public final static int COOKED = 0; 
public final static int BAKED = 1; 
public final static int DELIVERED = 2; 
int state = COOKED; 

public int getState() {return state; } 

public void setState(int state) {this.state = state; } 

public void bake() throws Exception { 
if(state == COOKED) { 
System.out.print("Baking the pizza..."); 
state = BAKED; } 
else if(state == BAKED) { 
throw new Exception("Can't bake a pizza already baked"); } 
else if(state == DELIVERED) { 
throw new Exception("Can't bake a pizza already delivered");} 


public void deliver() throws Exception { 
if(state == COOKED) { 
throw new Exception("Can't deliver a pizza not baked yet"); 

else if(state == BAKED) { 
System.out.print("Delivering the pizza..."); 
state = DELIVERED; } 
else if(state == DELIVERED) { 
throw new Exception("Can't deliver a pizza already delivered"); } 

}

 

EXERCISE: Refactor the pizza class using the state pattern. It could help if you draw a state machine for the transitions between states. In certain cases, a pizza's becomes undeliverable and will be eaten by the kitchen staff. Add this state to your solution.

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Knowledge Booster
Top down approach design
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education