Skip to content

Commit 4539373

Browse files
committed
Flyweight design pattern - BEFORE CODE with 1000s of objects (memory heavy)
1 parent 6deb6b9 commit 4539373

File tree

4 files changed

+77
-15
lines changed

4 files changed

+77
-15
lines changed

pattern/src/com/premaseem/Client.java

+44-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,52 @@
44
@author: Aseem Jain
55
@title: Design Patterns with Java 9
66
@link: https://premaseem.wordpress.com/category/computers/design-patterns/
7-
@copyright: 2018 Packt Publication
87
*/
98
public class Client {
109
public static void main (String[] args) {
11-
System.out.println("Singleton cook example ");
10+
System.out.println("Flyweight design pattern using ** STAR WARS ** example");
11+
12+
// Created 1000 stars with brightness level bright
13+
Star brightStar1 = new Star("bright");
14+
Star brightStar2 = new Star("bright");
15+
Star brightStar3 = new Star("bright");
16+
Star brightStar4 = new Star("bright");
17+
Star brightStar5 = new Star("bright");
18+
Star brightStar1000 = new Star("bright");
19+
20+
// Created 1000 stars with brightness level dim
21+
Star dimStar1 = new Star("dim");
22+
Star dimStar2 = new Star("dim");
23+
Star dimStar3 = new Star("dim");
24+
Star dimStar4 = new Star("dim");
25+
Star dimStar5 = new Star("dim");
26+
Star dimStar1000 = new Star("dim");
27+
28+
// Created 1000 stars with brightness level dull
29+
Star dullStar1 = new Star("dull");
30+
Star dullStar2 = new Star("dull");
31+
Star dullStar3 = new Star("dull");
32+
Star dullStar4 = new Star("dull");
33+
Star dullStar5 = new Star("dull");
34+
Star dullStar1000 = new Star("dull");
35+
36+
// Create Landscape object which is responsible to display stars
37+
Landscape landscape = new Landscape();
38+
39+
landscape.displayStar(brightStar1,34,45);
40+
landscape.displayStar(brightStar2,34,45);
41+
landscape.displayStar(brightStar3,23,65);
42+
landscape.displayStar(brightStar1000,34,45);
43+
44+
landscape.displayStar(dimStar1,34,45);
45+
landscape.displayStar(dimStar2,54,45);
46+
landscape.displayStar(dimStar3,34,45);
47+
landscape.displayStar(dimStar4,34,45);
48+
landscape.displayStar(dimStar1000,34,45);
49+
50+
landscape.displayStar(dullStar1,87,90);
51+
landscape.displayStar(dullStar2,34,45);
52+
landscape.displayStar(dullStar3,23,55);
53+
landscape.displayStar(dullStar1000,34,45);
1254
}
1355
}
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.premaseem;
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 Landscape {
9+
10+
public void displayStar (Star star, int xCoord, int yCoord) {
11+
System.out.println("logic to display a "+ star +" at X / Y coordinates ");
12+
}
13+
}

pattern/src/com/premaseem/Star.java

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.premaseem;
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 Star {
9+
10+
String brightness;
11+
12+
public Star (String brightness) {
13+
this.brightness = brightness;
14+
}
15+
16+
@Override
17+
public String toString () {
18+
return "Star with brightness :" + brightness;
19+
}
20+
}

patternBonus/src/com/premaseem/Client.java

-13
This file was deleted.

0 commit comments

Comments
 (0)