Sự khác biệt giữa .NET framework 4.0 MemoryCache
vs ObjectCache
là gì? Nơi sử dụng đối tượng nào?Sự khác nhau giữa MemoryCache vs ObjectCache trong .net 4.0 là gì?
Trả lời
ObjectCache là lớp trừu tượng thể hiện cách bạn nên xây dựng Cache tuân thủ các quy tắc mà người viết ObjectCache muốn bạn tuân thủ. Bạn không thể khởi tạo ObjectCache trực tiếp vì nó là abstract.
MemoryCache là thực hiện thực tế của ObjectCache.
Từ các tài liệu:
Đại diện một bộ nhớ cache đối tượng và cung cấp những phương pháp cơ bản và tính để truy cập vào bộ nhớ cache đối tượng.
Đại diện cho loại mà thực hiện một bộ nhớ cache trong bộ nhớ.
Nhìn vào tờ khai cho MemoryCache:
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
Chúng ta có thể thấy rằng MemoryCache thừa hưởng từ ObjectCache - có nghĩa là, nó là một bộ nhớ cache cho các đối tượng có sử dụng bộ nhớ như lưu trữ của nó - điều này do đó là một thực hiện của ObjectCache.
Bạn có thể tự viết; ví dụ, DatabaseCache, cũng có thể kế thừa từ ObjectCache nhưng thay vào đó nó sẽ sử dụng một cơ sở dữ liệu làm bộ nhớ sao lưu.
Để sử dụng hàng ngày, miễn là nó đáp ứng nhu cầu của bạn, bạn sẽ sử dụng và tiêu thụ MemoryCache. Nếu bạn muốn viết của riêng bạn, bạn có thể kế thừa từ ObjectCache và thực hiện các phương thức và thuộc tính cần thiết. Tuy nhiên, trong thực tế, có lẽ có rất ít lợi ích thiết thực để làm điều này khi Microsoft đã thực hiện một số giải pháp lưu trữ bộ nhớ đệm khác, cũng như nhiều nhà cung cấp khác.
Để tạo của riêng bạn, hãy xem [Tạo lớp Cache tùy chỉnh trên MSDN] (https://msdn.microsoft.com/en-us/library/ff919782.aspx#Anchor_5) – Stacked
ObjectCache
là lớp trừu tượng, bạn không thể 'sử dụng' nó cho mỗi lần. Như Dash nói trong bình luận của mình, nó được thiết kế để hiển thị như thế nào một bộ nhớ cache nên được xây dựng và những hoạt động nó hỗ trợ. MemoryCache
là việc triển khai ObjectCache
và từ câu hỏi của bạn có thể là những gì bạn nên sử dụng. Tuy nhiên, vì ObjectCache
là trừu tượng, bạn có thể dễ dàng viết FileCache
của riêng bạn kế thừa từ ObjectCache
và nó sẽ hoàn toàn hợp lệ.
Từ MSDN
;
Loại ObjectCache là loại chính cho đối tượng trong bộ nhớ bộ nhớ cache. Lớp MemoryCache tích hợp xuất phát từ lớp ObjectCache . Lớp MemoryCache là bộ nhớ cache đối tượng cụ thể duy nhất thực hiện trong .NET Framework 4 có nguồn gốc từ lớp Object2ache .
public class MemoryCache : ObjectCache,
IEnumerable, IDisposable
MemoryCache
thừa hưởng từ ObjectCache
.
Bạn có thể tham chiếu đến phiên bản MemoryCache
mặc định như thế này;
public static ObjectCache cache = MemoryCache.Default;
MemoryCache là triển khai cụ thể của ObjectCache. Từ một quan điểm thiết kế, ObjectCache là trừu tượng và trình bày cách xây dựng bộ nhớ đệm. MemoryCache là việc thực hiện thực tế này. – dash