From 4c5eb89e592340cd907b8389a61409ae8edbf95c Mon Sep 17 00:00:00 2001 From: Jason Lu Date: Thu, 10 Apr 2025 10:53:05 +0800 Subject: [PATCH] Add demo for using enum to create singleton --- src/main/java/feature/Book.java | 35 +++++++++++++++++++++++++++++ src/main/java/feature/BookDemo.java | 15 +++++++++++++ src/main/java/feature/BookEnum.java | 14 ++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 src/main/java/feature/Book.java create mode 100644 src/main/java/feature/BookDemo.java create mode 100644 src/main/java/feature/BookEnum.java diff --git a/src/main/java/feature/Book.java b/src/main/java/feature/Book.java new file mode 100644 index 0000000..8d38f48 --- /dev/null +++ b/src/main/java/feature/Book.java @@ -0,0 +1,35 @@ +package feature; + +public class Book { + private String title; + private String author; + private int pages; + + public Book(String title, String author, int pages) { + this.title = title; + this.author = author; + this.pages = pages; + } + + public String getTitle() { + return title; + } + + public String getAuthor() { + return author; + } + + public int getPages() { + return pages; + } + + @Override + public String toString() { + return "Book{" + + "title='" + title + '\'' + + ", author='" + author + '\'' + + ", pages=" + pages + + '}'; + } + +} diff --git a/src/main/java/feature/BookDemo.java b/src/main/java/feature/BookDemo.java new file mode 100644 index 0000000..4b6065d --- /dev/null +++ b/src/main/java/feature/BookDemo.java @@ -0,0 +1,15 @@ +package feature; + +/** + * create singleton using enum + */ +public class BookDemo { + public static void main(String[] args) { + Book book = new Book("Java Programming", "John Doe", 300); + System.out.println(book); + + // Using the singleton pattern + BookEnum.INSTANCE.setBook(book); + System.out.println(BookEnum.INSTANCE.getBook()); + } +} diff --git a/src/main/java/feature/BookEnum.java b/src/main/java/feature/BookEnum.java new file mode 100644 index 0000000..ba1ed7e --- /dev/null +++ b/src/main/java/feature/BookEnum.java @@ -0,0 +1,14 @@ +package feature; + +public enum BookEnum { + INSTANCE; + + private Book book; + + public Book getBook() { + return book; + } + public void setBook(Book book) { + this.book = book; + } +}