Skip to content

Commit 1c21cbf

Browse files
authored
Java Code Files
1 parent b7fd66c commit 1c21cbf

11 files changed

+227
-0
lines changed

JAVA Files/Cake.java

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package Final;
2+
abstract public class Cake{
3+
public final void templateMethod(int quantity){
4+
makeCake(quantity);
5+
//makeCrust;
6+
//addLayers(layers);
7+
bake();
8+
refrigerate();
9+
}
10+
11+
public void makeCake(int quantity){}
12+
// {
13+
// System.out.println("Quantity: "+quantity+" cake(s)");
14+
// }
15+
16+
public void bake() {} //Hook Template (specific minutes of time to bake cake)
17+
18+
public void refrigerate() {} //Hook Template
19+
20+
abstract String cakeName();
21+
22+
abstract int cakePrice();
23+
}

JAVA Files/CakeFactory.java

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package Final;
2+
class CakeFactory
3+
{
4+
Cake cake;
5+
Cake createCake(String type){
6+
switch (type){
7+
case "eggless":
8+
cake= new EgglessCake();
9+
return cake;
10+
case "chocolate":
11+
cake= new FlavourChocolate(cake);
12+
return cake;
13+
case "mango":
14+
cake= new FlavourMango(cake);
15+
return cake;
16+
case "strawberry":
17+
cake= new FlavourStrawberry(cake);
18+
return cake;
19+
case "nuts":
20+
cake= new ToppingNuts(cake);
21+
return cake;
22+
case "oreo":
23+
cake= new ToppingOreo(cake);
24+
return cake;
25+
default:
26+
cake= new EggCake();
27+
return cake;
28+
}
29+
}
30+
}

JAVA Files/Decorator.java

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package Final;
2+
abstract class Decorator extends Cake{
3+
Cake cake;
4+
}

JAVA Files/EggCake.java

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package Final;
2+
class EggCake extends Cake{
3+
int cakePrice(){
4+
return 70;
5+
}
6+
String cakeName(){
7+
return "Regular ShortCake (with egg)";
8+
}
9+
}

JAVA Files/EgglessCake.java

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package Final;
2+
class EgglessCake extends Cake{
3+
int cakePrice(){
4+
return 50;
5+
}
6+
String cakeName(){
7+
return "Eggless ShortCake";
8+
}
9+
}

JAVA Files/FlavourChocolate.java

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package Final;
2+
class FlavourChocolate extends Cake{
3+
Cake cake;
4+
FlavourChocolate(Cake cake){
5+
this.cake=cake;
6+
}
7+
String cakeName(){
8+
return cake.cakeName()+" Chocolate Flavour";
9+
}
10+
int cakePrice(){
11+
return cake.cakePrice()+200;
12+
}
13+
}

JAVA Files/FlavourMango.java

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package Final;
2+
class FlavourMango extends Cake{
3+
Cake cake;
4+
FlavourMango(Cake cake){
5+
this.cake=cake;
6+
}
7+
String cakeName(){
8+
return cake.cakeName()+" Mango Flavour";
9+
}
10+
int cakePrice(){
11+
return cake.cakePrice()+150;
12+
}
13+
}

JAVA Files/FlavourStrawberry.java

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package Final;
2+
class FlavourStrawberry extends Cake{
3+
Cake cake;
4+
FlavourStrawberry(Cake cake){
5+
this.cake=cake;
6+
}
7+
String cakeName(){
8+
return cake.cakeName()+" Strawberry Flavour";
9+
}
10+
int cakePrice(){
11+
return cake.cakePrice()+100;
12+
}
13+
}

JAVA Files/ShortcakeCafe.java

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package Final;
2+
import java.util.Scanner;
3+
class ShortcakeCafe extends CakeFactory{
4+
5+
public static void main(String[] args) {
6+
System.out.println("-----------Welcome to SHORT-CAKE CAFE-----------");
7+
CakeFactory cf=new CakeFactory();
8+
Cake c;
9+
StringBuilder cake_name= new StringBuilder();
10+
Scanner s=new Scanner(System.in);
11+
System.out.print("Enter the number of cakes: ");
12+
int number_of_cakes=s.nextInt();
13+
int price=0;
14+
for(int i=0;i<number_of_cakes;i++){
15+
System.out.println("Do you want an");
16+
System.out.println("1)Eggless cake, or");
17+
System.out.println("2)Egg cake");
18+
System.out.println("Enter your choice: ");
19+
int base_choice=s.nextInt();
20+
final String base;
21+
if(base_choice==1){
22+
base="eggless";
23+
c=cf.createCake(base);
24+
c.templateMethod(number_of_cakes);
25+
price+=c.cakePrice();
26+
// cake_name.append(c.cakeName());
27+
}
28+
else if(base_choice==2){
29+
base="";
30+
c=cf.createCake(base);
31+
c.templateMethod(number_of_cakes);
32+
price+=c.cakePrice();
33+
// cake_name.append(c.cakeName());
34+
}
35+
System.out.println("Which flavour of cake would you like to have?");
36+
System.out.println("1)Chocolate cake, or");
37+
System.out.println("2)Mango cake, or");
38+
System.out.println("3)Strawberry cake");
39+
int flavour_num=s.nextInt();
40+
final String flavour;
41+
if(flavour_num==1){
42+
flavour="chocolate";
43+
c=cf.createCake(flavour);
44+
c.templateMethod(number_of_cakes);
45+
price+=c.cakePrice();
46+
// cake_name.append(c.cakeName());
47+
}
48+
else if(flavour_num==2){
49+
flavour="mango";
50+
c=cf.createCake(flavour);
51+
c.templateMethod(number_of_cakes);
52+
price+=c.cakePrice();
53+
// cake_name.append(c.cakeName());
54+
}
55+
else if(flavour_num==3){
56+
flavour="strawberry";
57+
c=cf.createCake(flavour);
58+
c.templateMethod(number_of_cakes);
59+
price+=c.cakePrice();
60+
// cake_name.append(c.cakeName());
61+
}
62+
System.out.println("Which topping would you like to have on your cake?");
63+
System.out.println("1)Nuts, or");
64+
System.out.println("2)Oreo, or");
65+
int topping_num=s.nextInt();
66+
final String topping;
67+
if(topping_num==1){
68+
topping="nuts";
69+
c=cf.createCake(topping);
70+
c.templateMethod(number_of_cakes);
71+
price+=c.cakePrice();
72+
cake_name.append(c.cakeName());
73+
}
74+
else if(topping_num==2){
75+
topping="oreo";
76+
c=cf.createCake(topping);
77+
c.templateMethod(number_of_cakes);
78+
price+=c.cakePrice();
79+
cake_name.append(c.cakeName());
80+
}
81+
cake_name.append(" and a ");
82+
}
83+
System.out.println("Your order details: ");
84+
System.out.println("Number of cake(s): "+number_of_cakes);
85+
System.out.println("Cake: "+cake_name);
86+
System.out.println("Total Amount: Rs "+price);
87+
System.out.print("Bon Appétit (:");
88+
}
89+
}

JAVA Files/ToppingNuts.java

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package Final;
2+
class ToppingNuts extends Decorator{
3+
ToppingNuts(Cake cake){
4+
this.cake=cake;
5+
}
6+
String cakeName(){
7+
return cake.cakeName()+" with topping Nuts";
8+
}
9+
int cakePrice(){
10+
return cake.cakePrice()+25;
11+
}
12+
}

JAVA Files/ToppingOreo.java

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package Final;
2+
class ToppingOreo extends Decorator{
3+
ToppingOreo(Cake cake){
4+
this.cake=cake;
5+
}
6+
String cakeName(){
7+
return cake.cakeName()+" with topping Oreo";
8+
}
9+
int cakePrice(){
10+
return cake.cakePrice()+55;
11+
}
12+
}

0 commit comments

Comments
 (0)