Chào các bạn,
Mình đang tìm hiểu vể Design Patterm đến phần Singleton Patterm và có một thắc mắc sau đây:
Mình có 2 đoạn code mô tả 2 class Singleton khác nhau.
Code 1
Code 2
Vấn đề:
Code 1 viết theo đúng cấu trúc template của một singleton class mà mình đọc trong nhiều sách, bao gồm 1 method public getInstance để trả về đối tượng duy nhất. Kèm theo là các method để tương tác với Instance đó: như get,set value.
Code 2 là loại mình thường dùng để viết một lớp có khả năng chia sẽ dữ liệu chung cho nhiều đối tượng và không thể được khởi tạo để ra được 2 instances.
Câu hỏi:
Code 2 có áp dụng theo Singleton Patterm hay không ? Vì mình thấy chức năng của cả 2 lớp tương tự nhau.
Nếu câu trả lời là không, vậy thì hạn chế/ khuyết điểm của Code 2 là gì so với cách áp dụng nguyên mẫu khai báo Singleton sách vở ?
Mình đang tìm hiểu vể Design Patterm đến phần Singleton Patterm và có một thắc mắc sau đây:
Mình có 2 đoạn code mô tả 2 class Singleton khác nhau.
Code 1
Code:
public class Singleton { String resourceObject; private static Singleton instanceSingleton; private Singleton() { resourceObject = ""; } public String getResourceObject() { return resourceObject; } public void setResourceObject(String value) { this.resourceObject = value; } public static Singleton getInstance() { if (instanceSingleton == null) { instanceSingleton = new Singleton(); } return instanceSingleton; } }
Code:
public class NewSingleton { public NewSingleton() { } static String resourceObject; static { resourceObject = ""; } public static String getResourceObjetc() { return resourceObject; } public static void setRerourceObject(String value) { resourceObject = value; } }
Code 1 viết theo đúng cấu trúc template của một singleton class mà mình đọc trong nhiều sách, bao gồm 1 method public getInstance để trả về đối tượng duy nhất. Kèm theo là các method để tương tác với Instance đó: như get,set value.
Code 2 là loại mình thường dùng để viết một lớp có khả năng chia sẽ dữ liệu chung cho nhiều đối tượng và không thể được khởi tạo để ra được 2 instances.
Câu hỏi:
Code 2 có áp dụng theo Singleton Patterm hay không ? Vì mình thấy chức năng của cả 2 lớp tương tự nhau.
Nếu câu trả lời là không, vậy thì hạn chế/ khuyết điểm của Code 2 là gì so với cách áp dụng nguyên mẫu khai báo Singleton sách vở ?
Comment