2010-06-14 9 views
7

Chỉ cần cố gắng làm tròn đầu trách nhiệm của lớp dịch vụ và lớp kho lưu trữ khi lưu một đối tượng vào lưu trữ kiên trì của tôi.Trách nhiệm của các lớp dịch vụ và kho lưu trữ

hiện tại của tôi dưới đứng là thế này:

Trong điều khiển của tôi, tôi đã tạo ra một "Ghi chú" đối tượng từ các dữ liệu do người dùng (từ mẫu). Người dùng sau đó gọi "Lưu" trên "NoteService" (có sẵn thông qua tiêm phụ thuộc).

Trong phương thức "Lưu" trên "NoteService", tôi thực hiện xác thực logic nghiệp vụ và sau đó chuyển đối tượng "Lưu ý" đến phương thức "Lưu" của "NoteRepository".

Phương thức "Lưu" của "NoteRepository" sau đó kiểm tra xem có khóa chính hiện có trên đối tượng này hay không và sau đó lấy đối tượng đó từ db và cập nhật thuộc tính của nó bằng cách sử dụng đối tượng "Ghi chú" và sau đó nó được lưu lại vào db. Nếu không có khóa chính thì đối tượng chỉ được lưu vào db và sau đó quay trở lại dịch vụ với khóa chính mới được tạo của nó.

+0

Tôi nghĩ rằng đó là điều bạn đang nói, câu hỏi là gì? – uvita

+0

Câu hỏi của tôi về cơ bản là đây là cách để làm mọi thứ, tức là đây là mô hình/quy trình làm việc chính xác – Gazeth

Trả lời

4

Sự phân tách mối quan tâm của bạn nghe có vẻ khá tốt với tôi. Chúng tôi làm theo cùng một mẫu, nhưng có xu hướng thêm một lớp nữa ngay về lớp kho lưu trữ. Chúng tôi gọi nó là lớp miền và thực hiện tất cả logic kinh doanh của chúng tôi trong đó. Lớp dịch vụ của chúng tôi chỉ là một lần chuyển đến miền của chúng tôi trong trường hợp chúng tôi cần xuất bản bất kỳ dịch vụ nào của chúng tôi cho ESB trong tương lai.

Lợi ích lớn nhất của những gì bạn đang làm không làm lộn xộn tất cả công việc kinh doanh và logic DB trong bộ điều khiển mà nhiều người có xu hướng làm. Bạn luôn muốn bộ điều khiển của mình càng nhẹ càng tốt nếu bạn thực sự muốn theo dõi MVC.