Bạn có hai câu hỏi: khi nào tôi nên gọi một getInstance()phương thức và khi nào tôi nên tạo một phương thức?
Nếu bạn đang quyết định có nên gọi một getInstance()phương thức hay không, thật dễ dàng. Bạn chỉ cần đọc tài liệu lớp học để biết khi nào bạn nên gọi nó. Ví dụ, NumberFormatcung cấp một phương thức khởi tạo và một getInstance()phương thức; các getInstance()phương pháp sẽ cung cấp cho bạn một địa phương NumberFormat. Đối CalendarMặt khác, các nhà xây dựng được bảo vệ. Bạn phải gọi getInstance()để có được một.
Nếu bạn đang quyết định có nên tạo một getInstance()phương pháp hay không, bạn cần phải quyết định những gì bạn đang cố gắng hoàn thành. Hoặc bạn không muốn mọi người gọi hàm tạo của bạn (bạn đang tạo một singleton hoặc một nhà máy ), hoặc bạn không phiền (như ở NumberFormattrên, nơi họ khởi tạo một số đối tượng để thuận tiện cho người gọi).
Mẩu chuyện dài? Đừng lo lắng về việc tạo getInstance()các phương thức trong mã của riêng bạn. Nếu thời gian phát sinh khi chúng hữu ích, bạn sẽ biết. Và nói chung, nếu bạn có thể gọi phương thức khởi tạo của một lớp, bạn có thể đang làm điều đó, ngay cả khi lớp đó cung cấp một getInstance()phương thức.