lớp dịch vụ của tôi có xu hướng có khá một vài biến dụ ...
này không nhất thiết phải là một mã mùi. Nếu dịch vụ của bạn đòi hỏi nhiều phụ thuộc để hoàn thành công việc của nó, thì đây chỉ đơn giản là một thực tế.
... có vẻ như chúng thực hiện rất nhiều công việc (ví dụ: có nhiều phương pháp).
Bạn có nên tạo nhiều dịch vụ tập trung hơn không?
Theo nguyên tắc chung, bạn có thể làm cho giao diện dịch vụ của mình trở nên chi tiết hơn (tức là ít phương pháp hơn). để gọi?). Nhưng trừ khi bạn phát hành dưới dạng API công khai, mức độ chi tiết của giao diện dịch vụ của bạn có thể được tinh chỉnh khi bạn thực hiện. Thông thường, khi bắt đầu một dự án, tôi sẽ bắt đầu chỉ với một dịch vụ, và phân chia nó theo thời gian. Nếu bạn là người tiêu dùng của các dịch vụ này, thì khi bạn bắt đầu cảm thấy nỗi đau của một giao diện nhận được lớn, bạn sẽ biết đó là thời gian để phá vỡ nó. Tất nhiên, nếu điều này là API công khai, thì bạn sẽ phải thực hiện nhiều thiết kế khác.
Ngoài ra, các lớp dịch vụ có lưu trữ các biến mẫu vào các thực thể khác không? Tôi đọc một cái gì đó về các dịch vụ là không quốc tịch, tôi không chắc chắn nếu tôi phá vỡ quy tắc đó bằng cách có những biến thể hiện.
Lưu trữ phụ thuộc dưới dạng biến mẫu không nhất thiết ngụ ý rằng dịch vụ của bạn không phải là quốc tịch, miễn là các biến mẫu cũng không trạng thái. Để được coi là không trạng thái, các cuộc gọi phương thức trên một dịch vụ không được theo bất kỳ cách nào phụ thuộc vào các phương thức trước đó đang được gọi. Bạn sẽ có thể tải một cá thể dịch vụ duy nhất và chia sẻ nó cho ứng dụng của bạn (tức là một thể hiện của một dịch vụ không quốc tịch không nên cụ thể cho một phiên của người dùng cụ thể). Nói cách khác, dịch vụ của bạn không nên duy trì bất kỳ trạng thái nào giữa các cuộc gọi phương thức. Lưu trữ một sự phụ thuộc kho không trạng thái như là một biến trên một cá thể dịch vụ không vi phạm yêu cầu này.
Lý do dịch vụ không quốc tịch là mục tiêu mong muốn, không có trạng thái nào làm giảm đáng kể khả năng xảy ra lỗi.Nó đơn giản hóa việc thử nghiệm một phương thức dịch vụ bằng cách hạn chế các trường hợp thử nghiệm để thay đổi các tham số được truyền vào, thay vì phải lo lắng về trạng thái dịch vụ trước đó. Nó cũng có thể cung cấp các lợi ích hiệu suất.
Nguồn
2010-08-11 06:57:38
Cảm ơn câu trả lời tuyệt vời MJ! Điều này giúp ích rất nhiều. – chobo
@MJ Richardson Bạn có thể chia sẻ id email của bạn (tôi được thêm vào hồ sơ) không? Tôi có một số nghi ngờ rằng tôi muốn làm rõ về bài đăng này. –