2010-03-11 9 views
11

Kết quả của Google cho biết có nhiều hơn 1 mẫu đơn/baseclass đang tăng, bạn đề xuất mô hình nào?Thư viện Singleton nào trong BOOST bạn chọn?

tiêu đề singleton.hpp
+11

Độc thân là ác. Họ chỉ là các biến toàn cầu trong một ngụy trang chính trị đúng đắn! – Tronic

+0

Để cung cấp cho một nền tảng, jalf đặt nó tốt, ví dụ ở đây: http://stackoverflow.com/questions/86582/singleton-how-should-it-be-used/761711#761711 (tôi nghĩ rằng anh ấy đã xây dựng thêm ở một nơi khác, nhưng không thể tìm thấy nó ngay bây giờ). –

+2

@gf: Tôi nghĩ rằng tôi đã thực hiện điều đó trong ít nhất một tá câu hỏi khác nhau ngay bây giờ. ;) ở đây (http://stackoverflow.com/questions/1020312/are-singletons-really-that-bad/1020384#1020384) là một số khác. Và dường như tôi đã biến đổi GMan thành quan điểm của tôi, theo blog của anh ấy: (http://blackninjagames.com/?p=24), nhưng không thể tìm thấy chủ đề của nó ngay bây giờ. :) Vì vậy, yeah, trong khi nó có thể không trả lời câu hỏi của OP, tôi muốn nói "không sử dụng bất kỳ các lớp singleton trong tăng". :) – jalf

Trả lời

8

Bạn không nên sử dụng các đĩa đơn tăng cường, chúng chỉ dành cho mục đích nội bộ (xem thư mục "chi tiết" của các thư mục riêng biệt). Đó là lý do tại sao bạn không có một thư viện Singleton (chưa) tiếp xúc trên trang web tăng cường.

Lớp đơn giản rất dễ thực hiện nhưng có nhiều biến thể hữu ích trong các trường hợp cụ thể, do đó bạn nên sử dụng thứ gì đó phù hợp với những gì bạn cho là một singleton nên hoạt động như thế nào.

Bây giờ, còn có các thư viện khác cung cấp singleton, Loki chung nhất. Nhưng nó có thể thổi tâm trí của bạn;)


Cập nhật: Hiện nay, một thư viện đề nghị gọi là Singularity đó có nghĩa là để cung cấp singleton phi toàn cầu (với tùy chọn để làm cho nó toàn cầu) mà buộc bạn phải có sự sáng tạo rõ ràng và điểm hủy diệt của vật thể.

Xem yêu cầu xem xét lại: http://boost.2283326.n4.nabble.com/Review-Request-Singularity-tt3759486.html

Một số nhà phát triển tăng dường như xem xét sử dụng nó thay vì một số can thiệp, nhưng C++ 11 làm cho makeing một lớp Singleton dễ dàng hơn so với trước đây vì thế nó sẽ phụ thuộc vào đánh giá.

1

phiên bản của tôi về tăng đã sau:

C:\boost_1_38_0\boost\pool\detail\singleton.hpp 
C:\boost_1_38_0\boost\serialization\singleton.hpp 
C:\boost_1_38_0\boost\thread\detail\singleton.hpp 

tôi đã không sử dụng bất kỳ của những người, nhưng tôi có lẽ muốn tránh xa những người thân trong thư mục cụ thể.

Dù sao, http://torjo.com/tobias/index.html#boost_utility_singleton.reference.singleton trông giống như một để sử dụng, nhưng nó dường như không thực sự là một phần của tăng (chưa được chấp nhận chưa?).