$30 off During Our Annual Pro Sale. View Details »

CSE460 Lecture 17

CSE460 Lecture 17

Software Analysis and Design
Singleton
(202103)

Javier Gonzalez-Sanchez
PRO

July 17, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. 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

    View Slide

  2. jgs
    Previously …

    View Slide

  3. jgs
    00010000
    Practice

    View Slide

  4. jgs
    00010000
    Observer Pattern

    View Slide

  5. jgs
    00010000
    Decorator Pattern

    View Slide

  6. jgs
    00010000
    Solution: UI + Observer + Decorator

    View Slide

  7. jgs
    Let us Continue the Practice

    View Slide

  8. jgs
    00010000
    GoF Patterns

    View Slide

  9. jgs
    Singleton

    View Slide

  10. jgs
    00010000
    Singleton
    A B

    View Slide

  11. jgs
    00010000
    Singleton
    A B
    Printer
    DataBaseConnection
    UniversityPresident
    Pacman
    Logger
    ControlCenter

    View Slide

  12. jgs
    00010000
    Singleton

    View Slide

  13. 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
    }
    }
    }

    View Slide

  14. 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;
    }
    }

    View Slide

  15. jgs
    00010000
    Practice

    View Slide

  16. jgs
    00010000
    A Singleton

    View Slide

  17. jgs
    00010000
    Add More Objects

    View Slide

  18. 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.

    View Slide