2013-03-11 55 views
7

Tôi đang phát triển API Rest bằng cách sử dụng khung công tác của Ngăn xếp dịch vụ. Tất cả các lớp được tách ra để chúng tôi có thể thực hiện các chế độ DAL để kiểm tra đơn vị lớp logic kinh doanh.Trong lớp nào triển khai bộ nhớ cache?

Tôi đang cấu hình bộ nhớ cache với Inversion of Control:

container.Register<ICacheClient>(new MemoryCacheClient());

đâu MemoryCacheClient là một lớp đơn giản mà thực hiện ICacheClient với một vài phương pháp.

Và đây là câu hỏi: Lớp tốt nhất trong đó bao gồm các cuộc gọi đến bộ nhớ cache thông qua đảo ngược điều khiển này là gì?

  • Nó có thể nằm trong BLL, nhưng nó sẽ không mang lại vấn đề cho các bài kiểm tra đơn vị?

  • Nó có thể là trong DAL, biết rằng tôi sẽ phải mất IOC? Và, trong trường hợp này, tôi sẽ phụ thuộc vào bộ nhớ cache của máy chủ web, điều đó có thể sai.

  • Có thể trong giao diện web, biết rằng tôi có thể có một số logic ở đây và thậm chí mất một số tính năng?

  • Có thể giữa giao diện web và BLL, tạo một lớp mới?

tôi đã tìm kiếm rất nhiều và đọc một số bài báo, nhưng không có may mắn:

Cảm ơn

Trả lời

5

Bộ nhớ đệm của bạn không cần phải ở trong một trong hai lớp. Bạn có thể giữ nó bên ngoài từ logic nghiệp vụ và logic truy cập dữ liệu của bạn bằng cách gói các cuộc gọi có thể tận dụng bộ nhớ đệm trong một phương thức được trang trí và định cấu hình việc sử dụng trình trang trí bộ nhớ đệm trong thùng chứa IoC.

tôi đã không làm điều này bằng ServiceStack cụ thể, nhưng các mô hình cũng được ghi chép lại:

Các vấn đề liên quan