Slide 1

Slide 1 text

jgs CSE 460 Software Analysis and Design Lecture 17: Singleton Dr. Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment

Slide 2

Slide 2 text

jgs Previously …

Slide 3

Slide 3 text

jgs 00010000 Practice

Slide 4

Slide 4 text

jgs 00010000 Observer Pattern

Slide 5

Slide 5 text

jgs 00010000 Decorator Pattern

Slide 6

Slide 6 text

jgs 00010000 Solution: UI + Observer + Decorator

Slide 7

Slide 7 text

jgs Let us Continue the Practice

Slide 8

Slide 8 text

jgs 00010000 GoF Patterns

Slide 9

Slide 9 text

jgs Singleton

Slide 10

Slide 10 text

jgs 00010000 Singleton A B

Slide 11

Slide 11 text

jgs 00010000 Singleton A B Printer DataBaseConnection UniversityPresident Pacman Logger ControlCenter

Slide 12

Slide 12 text

jgs 00010000 Singleton

Slide 13

Slide 13 text

jgs 00010000 Singleton class Main { public static void main(String []a){ // Constructor is protected -- cannot use new Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); // Test for same instance if (s1 == s2){ // true - Objects are the same instance } } }

Slide 14

Slide 14 text

jgs 00010000 Singleton class Singleton{ private static Singleton instance; // Constructor is 'protected' protected Singleton() {} public static Singleton getInstance(){ if (instance == null){ instance = new Singleton(); } return instance; } }

Slide 15

Slide 15 text

jgs 00010000 Practice

Slide 16

Slide 16 text

jgs 00010000 A Singleton

Slide 17

Slide 17 text

jgs 00010000 Add More Objects

Slide 18

Slide 18 text

jgs CSE 460 Software Analysis and Design Javier Gonzalez-Sanchez [email protected] Fall 2020 Disclaimer. These slides can only be used as study material for the class CSE460 at ASU. They cannot be distributed or used for another purpose.