2009-12-07 39 views
16

Tôi có một lớp nghiệp vụ có một số đối tượng kinh doanh/POCO/tổ chức/bất kỳ thứ gì. Tôi cũng có một số kho lưu trữ dữ liệu. Cho đến thời điểm này, tôi đã truy cập các kho lưu trữ trực tiếp từ lớp giao diện người dùng của tôi. Tôi đang ở một điểm mà tôi thực sự cần một số lớp học khác mà không phải là CRUD thẳng, vì vậy tôi sẽ tạo ra một số lớp logic kinh doanh mà sẽ làm logic, và CRUD, và các kho sẽ không được truy cập bởi Giao diện người dùng nữa (có thể đã được thực hiện ngay từ đầu).Các Lớp Logic Kinh doanh Đặt tên

Tôi nên gọi những lớp này là gì? Điều duy nhất tôi có thể nghĩ là các lớp dịch vụ, nhưng tôi có các dịch vụ WCF thực tế trong ứng dụng này, do đó sẽ làm cho nó khó hiểu. Các dịch vụ WCF cũng sẽ được sử dụng các lớp này, do đó, có một dịch vụ sử dụng một lớp dịch vụ có vẻ kỳ lạ và khó hiểu.

Trả lời

11

Tôi cũng sử dụng quy ước đặt tên "Dịch vụ". Đúng là "dịch vụ" đã trở thành một thuật ngữ quá tải trong ngành, nhưng nó có ý nghĩa nhất. Nhà phát triển xem xét mã sẽ có thể xác định sự khác biệt giữa Dịch vụ ứng dụng/miền so với dịch vụ WCF và trong khi có dịch vụ WCF, các lớp dịch vụ khác có thể gây nhầm lẫn, tôi nghĩ bạn sẽ không thấy nó. Ý tưởng về một dịch vụ là nó là mã thực hiện một hàm, và có sẵn để sử dụng bởi mã khác. Nó có thể là một dịch vụ nội bộ, hoặc nó có thể là một dịch vụ được tiếp xúc bên ngoài thông qua http hoặc bất cứ điều gì. Nhưng ý tưởng về những gì mã làm là như nhau.

3

Nếu 'dịch vụ' của bạn được dàn logic kinh doanh sử dụng một số đối tượng miền, bạn đang có khả năng thực hiện Facade Pattern - vì vậy có lẽ bạn có thể đặt tên chúng với hậu tố này, ví dụ như OrderManagementFacade

+0

Mẫu này mới đối với tôi, nhưng tôi thích nó. Nó rất mô tả không giống như "dịch vụ". –

+0

Nó là mô tả, ngoại trừ khi không có đối tượng miền và các "dịch vụ" thực hiện logic của mình. – Vakho

3

Từ mô tả của bạn, có vẻ giống như các lớp WCF đang thực sự triển khai dịch vụ máy chủ. Tôi thường đặt tên các lớp như vậy với hậu tố "ServiceHost". Nó tách chúng độc đáo khỏi các lớp dịch vụ thực tế. Ví dụ:

Ví dụ: bạn sẽ có logic nghiệp vụ trong lớp có tên "CustomerService" và lớp WCF tương ứng sẽ được đặt tên là "CustomerServiceHost".

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