2011-12-22 23 views
5

Mặc dù câu hỏi này liên quan đến EhCache chủ yếu, nó thực sự áp dụng cho khung bộ nhớ đệm (và đồng bằng cũ bộ nhớ đệm) nói chung.Cache Singleton hoặc Instance?

ehcache cho phép bạn tạo một singleton CacheManager để quản lý tất cả các Caches trong ứng dụng của bạn, hoặc nó cho phép bạn tạo ra "dụ" CacheManager, có nghĩa là chính xác những gì nó nghe như: nhiều nhà quản lý trong việc sử dụng xuyên suốt ứng dụng của bạn.

Ưu điểm/nhược điểm của mỗi loại là gì? Ở cái nhìn đầu tiên, có vẻ như nó sẽ sạch sẽ hơn nếu chỉ có một người quản lý singleton.

Lý do duy nhất tôi có thể nghĩ ra tại sao người ta muốn nhiều người quản lý thể hiện là tất cả bộ nhớ cache sống trong một số CacheManager phải chia sẻ cùng một cấu hình: cùng kích thước, chiến lược sử dụng, dung lượng, v.v. nhiều cache, mỗi cấu hình khác nhau, singleton CacheManager sẽ không thể cung cấp các cấu hình bộ nhớ cache khác nhau cho mỗi bộ nhớ cache.

Đây có phải là tiêu chí duy nhất để xác định singleton vs người quản lý mẫu không? Nếu không, một số cân nhắc khác là gì? Có một chi phí hiệu năng đáng chú ý liên quan đến một trong hai? Cảm ơn trước!

Trả lời

0

Còn thử nghiệm tự động thì sao? Có lẽ nó có thể hữu ích cho thử nghiệm đơn vị nếu bạn có thể kích hoạt/vô hiệu hóa/cấu hình bộ nhớ đệm trên một mức độ nhỏ hơn? Chỉ là một ý nghĩ.