Cái sau thật khủng khiếp. Nó mô hình hóa cái gì đó có một trật tự bán hàng, mà lần lượt được mô hình hóa bởi một đối tượng - không phải là mô hình hóa một cái gì đó mà có một đối tượng bán hàng.
"BusinessObject" chỉ nên là tên của một cái gì đó trong mã của bạn, nếu bạn đang viết một công cụ cho các nhà phát triển để giúp họ đối phó với các đối tượng kinh doanh.
Trước đây thường tốt.
Không tốt nếu có thể có nhiều hơn SalesOrder
- ngay cả khi một trong số đó là "chính", bạn đang giới thiệu sự nhầm lẫn. Tuy nhiên, một thuộc tính SalesOrders
là một số đếm hoặc tập hợp các đối tượng SalesOrder
là tốt (khi số nhiều tiếng Anh không phải là dạng số ít, sử dụng số nhiều thực thay vì chỉ thêm s, trừ khi đó là trường hợp số nhiều tiếng Anh cũng giống như số ít
Đó là chưa đầy tuyệt vời khi mọi thứ khác là bán hàng liên quan đến Ví dụ này là khủng khiếp:..
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public SalesReference SalesReference{get;set;}
public decimal SalesValue{get;set;}
public string SalesCurrency{get;set;}
}
Trong trường hợp này tôi muốn cắt "bán hàng" từ mỗi tên thuộc tính, nhưng không phải (nhất thiết) từ tên lớp.
Tuy nhiên, đây là trường hợp đẹp hơn:
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public StockOrder StockOrder{get;set;}
}
Trong tất cả, con đường để tiếp cận nó là:
- gì là tên tốt nhất cho những gì lớp này không, mà phân biệt nó từ những gì các lớp khác làm (và do đó, không có "đối tượng" , "đối tượng kinh doanh", "thực thể" hoặc tương tự trừ khi điều đó thực sự nổi bật là đặc biệt có liên quan trong trường hợp cụ thể).
- Tên tốt nhất cho những gì thuộc tính phản ánh, phân biệt nó với các thuộc tính khác.
Nếu chúng kết thúc cho cùng tên trong một trường hợp cụ thể, thì tốt (trừ khi đó là lớp lồng nhau, khi nó mơ hồ và bất hợp pháp). Nếu họ kết thúc bằng một cái tên khác, thì cũng được.
Nguồn
2012-08-24 15:04:29
Trong trường hợp tôi đã nghĩ về điều khiển thực sự của người dùng. Điều khiển được gọi là SendEmail.ascx. Vì vậy, sau đó việc sử dụng sẽ đọc 'SendEmail.Order' – Will
Sau đó, bạn nên tách giao diện người dùng khỏi logic nghiệp vụ, tạo một lớp 'Bán' (hoặc bất kỳ thứ gì). –
. SalesOrder là một lớp hoàn toàn riêng biệt, với tập hợp các thuộc tính và phương thức truy cập dữ liệu của riêng tôi, tôi đang sử dụng thuộc tính này để theo dõi SalesOrder trên các postback. – Will