2009-08-02 32 views
5

Khi chúng ta muốn triển khai ứng dụng Web, chúng ta nên sử dụng đối tượng Singleton hay sử dụng Static thay vì? nút cổ chai để sử dụng cho mỗi người trong số họ là gì? Tôi nên biết về vấn đề bộ nhớ, sự cố đồng thời và ....Singleton vs Static Preference and Defect

PS: những gì xảy ra cho lớp đó chỉ là có thể đọc được (nên sử dụng tĩnh hoặc Singleton)

PS 2: những gì xảy ra cho lớp đó là có thể đọc được và ghi

Trả lời

3

Cuối cùng nó xuất hiện trong trường hợp của bạn một phương pháp đơn/tĩnh sẽ làm việc cả hai. Tôi lấy nó trong cả hai trường hợp phương pháp trợ giúp của bạn là tinh khiết và không sử dụng hoặc cần bất kỳ trạng thái nào. Cuối cùng bằng cách sử dụng một singleton cung cấp cho bạn một vài tùy chọn bổ sung như khả năng giả lập. Bằng cách sử dụng một lớp chứ không phải là người trợ giúp tĩnh, khả năng tồn tại để phát triển thiết kế hoặc có lẽ thay thế một chiến lược khác, v.v ... trong một thời gian tới. Với những người trợ giúp tĩnh, bạn bị mắc kẹt nhiều.

Vì phương pháp của bạn là đồng thời thuần túy sẽ không và không thể là vấn đề khi không có trạng thái được chia sẻ.

+0

đó là đúng, nhưng nếu sử dụng phương pháp tĩnh trong ứng dụng web của tôi là nó có thể tôi gặp phải vấn đề sau này? một số nơi tôi đọc nó tốt hơn không sử dụng tĩnh trong ứng dụng web. – Am1rr3zA

2

tĩnh: Một trường hợp duy nhất được chia sẻ giữa tất cả các chủ đề - mọi quyền truy cập vào thành viên tĩnh sẽ trả về cùng một phiên bản. Không có giới hạn khi tạo các trường hợp khác cùng loại.

Singleton: Một phiên bản duy nhất cho toàn bộ ứng dụng. Không thể tạo các phiên bản khác của loại này trong ứng dụng.

+0

Lớp "tất cả tĩnh" là lạ. Không có "điều" được đại diện bởi một thể hiện của lớp. Nếu không có "điều", tại sao có một định nghĩa lớp học ở nơi đầu tiên? –

+1

Tôi có nghĩa là "trường hợp tĩnh" không phải "tất cả các lớp tĩnh". Tất cả các lớp tĩnh đều có một số cách sử dụng cho mục đích tổ chức. –