Tổ chức tên miền Logic: Mô-đun bànMô hình thứ hai cho đại diện cho tên miền logic là mô-đun bàn. Như tên của nó mô hình này kêu gọi một thành phần kinh doanh để ánh xạ cho một bảng trong cơ sở dữ liệu. Cấu phần sau đó bao gồm tất cả các phương pháp logic miền cần thiết để thao tác dữ liệu. Không có hai cân nhắc quan trọng ở đây. Đầu tiên, mặc dù tên đề cập đến một bảng, bảng mô-đun cũng có thể được sử dụng tới bản tóm tắt thường xuyên sử dụng các bộ dữ liệu tạo bằng cách tham gia nhiều bảng cùng nhau trong một xem hoặc truy vấn. Điều này làm cho các giao dịch với dữ liệu phức tạp hơn dễ dàng hơn nhiều cho người gọi cho các thành phần kinh doanh. Thứ hai, cốt lõi đặc trưng của mỗi thành phần được xây dựng như là một mô-đun bàn là rằng, không giống như mô hình miền, nó đã không có khái niệm về danh tính. Nói cách khác, mỗi mô-đun bảng đối tượng đại diện cho một tập hợp các hàng chứ không phải là một hàng duy nhất và do đó để hoạt động trên một hàng duy nhất, các phương pháp của các mô-đun bàn phải được thông qua trong định dạng. Khi một phương pháp của một mô-đun bàn được gọi là, nó thực hiện logic chống lại một tập hợp các hàng được thông qua vào nó. Trong khuôn khổ ứng dụng này ánh xạ tới một tập dữ liệu và do đó là một cách tự nhiên để đại diện cho tên miền logic. Trong thực tế, bằng cách sử dụng gõ DataSets với mô-đun bàn là đặc biệt hiệu quả vì nó khuyến khích mạnh mẽ cách gõ vào thời gian thiết kế dẫn đến lỗi thời gian chạy ít hơn và tốt hơn kiểm soát dữ liệu chảy qua các ứng dụng. Một phương pháp phổ biến để xử lý này là tạo ra một lớp Supertype (một mô hình cũng được thảo luận bởi Fowler) hoặc cơ sở lớp cho tất cả các mô-đun bàn mà chấp nhận một tập dữ liệu trong nhà xây dựng của nó. Điều này cũng cho phép các thành phần kinh doanh để được kiểm tra mà không có một kết nối trực tiếp đến một cơ sở dữ liệu. Để thực hiện một bảng mô-đun cách tiếp cận trong bán lẻ ứng dụng ví dụ bạn có thể tạo ra một lớp BusinessComponentBase trừu tượng như thế Hiển thị ở đây. Lớp này chịu trách nhiệm chấp nhận số liệu mà các lớp học sẽ làm việc trên, lộ cá nhân hàng trong bộ dữ liệu bằng cách sử dụng mặc định (VB) hoặc chỉ mục (C#) tài sản, và phơi bày bộ hàng trong một tài sản readonly, toàn bộ. Như bạn có thể thấy một trong những lợi thế để sử dụng mô-đun bàn trong kịch bản giao dịch là nó là dễ dàng hơn để đóng gói các trách nhiệm với các đối tượng thích hợp. Ở đây các lớp khách có SendEmail và CheckCredit các phương pháp có thể được gọi là một cách độc lập trong khi các tập lệnh giao dịch Hiển thị trước đó sẽ có bao gồm nội tuyến mã xử lý này. Mã để thực hiện các lớp học BusinessComponentBase có thể được nhìn thấy dưới đây. Khu vực MustInherit lớp BusinessComponentBase Riêng _ds như bộ dữ liệu Riêng _pk như là Chuỗi Bảo vệ phụ New(ByVal data As DataSet) _ds = dữ liệu _pk = _ds.Tables(0).PrimaryKey(0).ColumnName Cuối tiểu Mặc định bảo vệ ReadOnly bất động sản Item(ByVal id As Integer) như DataRow Nhận được Mờ f là chuỗi = _pk & "=" & id Trở lại _ds.Tables(0).Select(f)(0) Nhận được kết thúc Kết thúc tài sản Bảo vệ tài sản ReadOnly Items() như bộ dữ liệu Nhận được Trở lại _ds Nhận được kết thúc Kết thúc tài sảnCuối lớpLưu ý rằng các nhà xây dựng được bảo vệ thấy cột quan trọng chính và cửa hàng giá trị của nó trong một biến tư nhân được sử dụng bởi nhà hàng để lựa chọn và trở lại một DataRow đặc biệt. Lớp này sau đó có thể được thừa kế bởi đơn đặt hàng và khách hàng. Lớp đơn đặt hàng trong C# Hiển thị ở đây. công cộng lớp đơn đặt hàng: BusinessComponentBase{ khu vực mới OrdersDs mục {nhận được {trở lại (OrdersDs) cơ sở.Mục; } } khu vực đơn đặt hàng (OrdersDs orders):base(orders) { } khu vực ShipType GetShipType(long orderId) { Trở về các loại hình vận chuyển cho đơn đặt hàng } khu vực đôi GetShippingCost (dài orderId) { Tính toán chi phí vận chuyển cho đơn đặt hàng } khu vực vô hiệu SaveOrder (dài orderId) { Lưu thứ tự cụ thể vào cơ sở dữ liệu } khu vực vô hiệu SaveOrder() { Lưu tất cả các đơn đặt hàng vào cơ sở dữ liệu } khu vực long chèn (dài productId, int customerId, số lượng dài, ShipType tàu) { Chèn một dòng mới trong bộ dữ liệu }}Vấn đề chính để thông báo ở đây là các nhà xây dựng chấp nhận một tập dữ liệu của loại OrdersDs đó là một tập dữ liệu đã nhập. Các lớp học sau đó bóng phương pháp mục để trở lại một tập dữ liệu mạnh mẽ đánh máy. Ngoài ra, đây là một nơi tốt để tận dụng lợi thế của quá tải như trong phương pháp SaveOrder có thể được sử dụng để tiết kiệm hoặc đặt hàng một hoặc tất cả các đơn đặt hàng trong bộ dữ liệu. Một khách hàng sau đó có thể nhanh chóng lớp đơn đặt hàng đi vào nó tập dữ liệu OrdersDs.
đang được dịch, vui lòng đợi..
