Skip to content

Commit 0144801

Browse files
committed
Fly Wheel Patterns - Example of Star tracker where same objects are reused by changing extensric properties
1 parent 0519983 commit 0144801

4 files changed

Lines changed: 190 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/bin
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.premaseem.flyWeight;
2+
3+
import java.util.Scanner;
4+
5+
public class ClientFile {
6+
7+
public static void main(String[] args) {
8+
9+
System.out.println("Welcome to the star tracker example using Fly Weight pattern ");
10+
Scanner scan = new Scanner(System.in);
11+
StarFactory starFactory = new StarFactory();
12+
Star star = null;
13+
int repeatRunFlag = 1;
14+
while (repeatRunFlag == 1) {
15+
System.out.println(" Which star you want to draw ");
16+
System.out.println("press 1 for PoleStar");
17+
System.out.println("press 2 for DraughStar ");
18+
System.out.println("press 3 for SuperNoveStar ");
19+
int tvType = scan.nextInt();
20+
System.out.println(" Enter placement of Center of star in number ");
21+
String center = scan.next();
22+
23+
if (tvType == 1) {
24+
star = starFactory.getStar("PoleStar");
25+
} else if (tvType == 2) {
26+
star = starFactory.getStar("DraughStar");
27+
} else {
28+
star = starFactory.getStar("SuperNoveStar");
29+
}
30+
31+
star.setCenter(center);
32+
System.out.println("=============================");
33+
System.out.println(star);
34+
System.out.println("=============================");
35+
36+
System.out.println("Press 1 to Repeat .... ");
37+
try {
38+
repeatRunFlag = scan.nextInt();
39+
} catch (Exception e) {
40+
repeatRunFlag = 0;
41+
}
42+
43+
}
44+
45+
System.out.println("\n $$$$$$$$$$$$$$$$$$$$ Thanks by Prem Aseem $$$$$$$$$$$$$$$$$$$$$$ \n ");
46+
System.out.println("\n $$$$$$$$$$$$$$$$$$$$$ www.premaseem.com $$$$$$$$$$$$$$$$$$$$$$ \n ");
47+
48+
}
49+
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
package com.premaseem.flyWeight;
2+
3+
abstract public class Star {
4+
public Star(String name){
5+
this.name = name;
6+
}
7+
String extensricInputcenter;
8+
9+
/**
10+
*
11+
*/
12+
String name;
13+
String getCenter() {
14+
return extensricInputcenter;
15+
}
16+
17+
void setCenter(String center) {
18+
this.extensricInputcenter = center;
19+
}
20+
21+
String getName() {
22+
return name;
23+
}
24+
25+
void setName(String name) {
26+
this.name = name;
27+
}
28+
29+
String starColor = "white";
30+
String size = "big";
31+
32+
String getStarColor() {
33+
return starColor;
34+
}
35+
36+
abstract void setStarColor(String starColor);
37+
38+
String getSize() {
39+
return size;
40+
}
41+
42+
abstract void setSize(String size);
43+
44+
@Override
45+
public String toString() {
46+
return this.getClass().getSimpleName() + " placed at " + extensricInputcenter +" with color "+ starColor + " and size " + size ;
47+
}
48+
49+
50+
51+
}
52+
53+
class SuperNoveStar extends Star {
54+
55+
public SuperNoveStar(String name) {
56+
super(name);
57+
// TODO Auto-generated constructor stub
58+
}
59+
60+
@Override
61+
void setStarColor(String starColor) {
62+
this.starColor = "red";
63+
64+
}
65+
66+
@Override
67+
void setSize(String size) {
68+
this.size = "huge";
69+
}
70+
71+
}
72+
73+
class PoleStar extends Star {
74+
75+
public PoleStar(String name) {
76+
super(name);
77+
// TODO Auto-generated constructor stub
78+
}
79+
80+
@Override
81+
void setStarColor(String starColor) {
82+
// TODO Auto-generated method stub
83+
this.starColor = "while";
84+
}
85+
86+
@Override
87+
void setSize(String size) {
88+
// TODO Auto-generated method stub
89+
this.size = "medium";
90+
}
91+
92+
}
93+
94+
class DraughStar extends Star {
95+
96+
public DraughStar(String name) {
97+
super(name);
98+
// TODO Auto-generated constructor stub
99+
}
100+
101+
@Override
102+
void setStarColor(String starColor) {
103+
this.starColor = "black";
104+
}
105+
106+
@Override
107+
void setSize(String size) {
108+
this.size = "small";
109+
}
110+
111+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.premaseem.flyWeight;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
public class StarFactory {
7+
8+
Map<String, Star> starStock = new HashMap<String, Star>();
9+
10+
Star getStar(String name) {
11+
return (starStock.get(name) == null ? getNewStar(name) : starStock.get(name));
12+
13+
}
14+
15+
Star getNewStar(String name) {
16+
Star star = null;
17+
if(name.equalsIgnoreCase("SuperNoveStar")){
18+
star = new SuperNoveStar(name);
19+
}else if(name.equalsIgnoreCase("PoleStar")){
20+
star = new PoleStar(name);
21+
}else if(name.equalsIgnoreCase("DraughStar")){
22+
star = new DraughStar(name);
23+
}
24+
25+
starStock.put(name, star);
26+
return star;
27+
}
28+
29+
}

0 commit comments

Comments
 (0)