Skip to content

Commit 763d62b

Browse files
committed
step 1: Poor code (before applying abstract factory)
1 parent 6deb6b9 commit 763d62b

5 files changed

Lines changed: 129 additions & 1 deletion

File tree

pattern/src/com/premaseem/Client.java

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,67 @@
66
@link: https://premaseem.wordpress.com/category/computers/design-patterns/
77
@copyright: 2018 Packt Publication
88
*/
9+
10+
import com.premaseem.icecreams.AmulChocolateIceCream;
11+
import com.premaseem.icecreams.AmulStrawberryIceCream;
12+
import com.premaseem.icecreams.DairyQueenChocolateIceCream;
13+
import com.premaseem.icecreams.DairyQueenStrawberryIceCream;
14+
15+
import java.util.Scanner;
16+
917
public class Client {
1018
public static void main (String[] args) {
11-
System.out.println("Singleton cook example ");
19+
Scanner scan = new Scanner(System.in);
20+
System.out.println("Ice cream Abstract factory example ");
21+
System.out.println("Please enter the Brand of Ice cream ... ");
22+
System.out.println("Dairy Queen");
23+
System.out.println("Amul");
24+
String iceCreamBrand = scan.next();
25+
26+
System.out.println("Please enter your ice cream flavor ... ");
27+
System.out.println("Strawberry");
28+
System.out.println("Chocolate");
29+
String iceCreamChoice = scan.next();
30+
31+
32+
// Family of similar products with different brands. ( Tight couple)
33+
DairyQueenStrawberryIceCream dairyQueenStrawberryIceCream =null;
34+
DairyQueenChocolateIceCream dairyQueenChocolateIceCream = null;
35+
AmulStrawberryIceCream amulStrawberryIceCream =null;
36+
AmulChocolateIceCream amulchocolateIceCream = null;
37+
38+
// Sphegati code with if else ladder
39+
if (iceCreamBrand.equalsIgnoreCase("Amul")
40+
&& iceCreamChoice.equalsIgnoreCase("Strawberry")){
41+
amulStrawberryIceCream = new AmulStrawberryIceCream();
42+
43+
}else if (iceCreamBrand.equalsIgnoreCase("Amul") &&
44+
iceCreamChoice.equalsIgnoreCase("Chocolate")){
45+
amulchocolateIceCream = new AmulChocolateIceCream();
46+
47+
}else if (iceCreamBrand.equalsIgnoreCase("Dairy Queen")
48+
&& iceCreamChoice.equalsIgnoreCase("Strawberry")){
49+
dairyQueenStrawberryIceCream = new DairyQueenStrawberryIceCream();
50+
51+
}else if (iceCreamBrand.equalsIgnoreCase("Dairy Queen") &&
52+
iceCreamChoice.equalsIgnoreCase("Chocolate")){
53+
dairyQueenChocolateIceCream = new DairyQueenChocolateIceCream();
54+
}
55+
56+
// Ice cream of your choice is :
57+
System.out.print("Ice cream of your choice is ");
58+
if (amulStrawberryIceCream != null){
59+
System.out.println(amulStrawberryIceCream);
60+
}
61+
if (amulchocolateIceCream != null){
62+
System.out.println(amulchocolateIceCream);
63+
}
64+
if (dairyQueenStrawberryIceCream != null){
65+
System.out.println(dairyQueenStrawberryIceCream);
66+
}
67+
if (dairyQueenChocolateIceCream != null){
68+
System.out.println(dairyQueenChocolateIceCream);
69+
}
70+
1271
}
1372
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.premaseem.icecreams;
2+
3+
/*
4+
@author: Aseem Jain
5+
@title: Design Patterns with Java 9
6+
@link: https://premaseem.wordpress.com/category/computers/design-patterns/
7+
*/
8+
public class AmulChocolateIceCream {
9+
String brand = "Amul ";
10+
Integer cost = 3;
11+
Integer calories = 200;
12+
13+
@Override
14+
public String toString () {
15+
return this.getClass().getSimpleName() + " of brand " + brand +
16+
"with calories " + calories + " and cost: $" + cost;
17+
}
18+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.premaseem.icecreams;
2+
3+
/*
4+
@author: Aseem Jain
5+
@title: Design Patterns with Java 9
6+
@link: https://premaseem.wordpress.com/category/computers/design-patterns/
7+
*/
8+
public class AmulStrawberryIceCream {
9+
String brand = "Amul ";
10+
Integer cost = 2;
11+
Integer calories = 200;
12+
13+
@Override
14+
public String toString () {
15+
return this.getClass().getSimpleName() + " with Calories: " + calories + " and cost: $" + cost;
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.premaseem.icecreams;
2+
3+
/*
4+
@author: Aseem Jain
5+
@title: Design Patterns with Java 9
6+
@link: https://premaseem.wordpress.com/category/computers/design-patterns/
7+
*/
8+
public class DairyQueenChocolateIceCream {
9+
String brand = "Dairy Queen ";
10+
Integer cost = 3;
11+
Integer calories = 200;
12+
13+
@Override
14+
public String toString () {
15+
return this.getClass().getName() + " with " + calories + " and cost: $" + cost;
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.premaseem.icecreams;
2+
3+
/*
4+
@author: Aseem Jain
5+
@title: Design Patterns with Java 9
6+
@link: https://premaseem.wordpress.com/category/computers/design-patterns/
7+
*/
8+
public class DairyQueenStrawberryIceCream {
9+
String brand = "Dairy Queen";
10+
Integer cost = 2;
11+
Integer calories = 200;
12+
13+
@Override
14+
public String toString () {
15+
return this.getClass().getSimpleName() + " with Calories: " + calories + " and cost: $" + cost;
16+
}
17+
}

0 commit comments

Comments
 (0)