2010-08-23 30 views
13

Tôi sắp xếp có vấn đề đặt tên cho lớp/không gian tên/điều khiển của tôi.Quy ước đặt tên giới thiệu cho các lớp học trong một ứng dụng nhiều tầng là gì?

Trong thư viện doanh nghiệp của tôi, tôi có không gian tên được gọi là Mua sắm. Nó chứa các loại sau đây: ShoppingCartItem
Giỏ hàng
ShoppingCartManager

Trong ứng dụng ASP.net của tôi, tôi muốn tạo một điều khiển đồ họa đại diện cho mặt hàng của một trường hợp Giỏ hàng. Thông thường, tôi sẽ gọi đó là ShoppingCart, nhưng một lớp khác gọi là ShoppingCart? Tất nhiên biên dịch et cetera sẽ hoạt động, nhưng tôi nghĩ nó vẫn xấu xí. Tôi nghĩ rằng tôi có một vấn đề mà tôi đặt tên lớp kinh doanh của tôi excatly những gì họ có nghĩa vụ phải đại diện. Bởi vì khi nói đến lớp trình bày, tôi sẽ đặt tên cho các điều khiển được cho là đại diện cho lớp nghiệp vụ giống nhau.

Tôi nghĩ rằng tôi có thể thêm hậu tố như "Chế độ xem", nhưng tôi muốn làm điều đó đúng.

Quy ước đặt tên đề xuất cho ứng dụng nhiều tầng là gì?
Tôi nên đặt tên cho kiểm soát đại diện cho các mặt hàng của một ShoppingCart trong lớp trình bày như thế nào?

Sửa: Các câu hỏi liên quan: How should I name database wrapper object?

Trả lời

10

Trong mô hình MVC, khá phổ biến là có Foo, FooViewFooController.

Bạn có thể quyết định việc gắn chúng vào một hệ thống phân cấp khác (Shopping.Model.Cart, Shopping.View.Cart) dễ dàng hơn. Đó là khái niệm sạch sẽ, nhưng tôi nghĩ rằng nó không thể đọc được. Thay vào đó, bạn có thể sử dụng tên riêng biệt trong các không gian tên khác nhau (Shopping.View.CartView).

Một IDE tốt sẽ cho phép bạn di chuyển/đổi tên mọi thứ, vì vậy, không đáng để dành quá nhiều thời gian lo lắng khi chọn tên hoàn hảo cho thứ gì đó.Điều quan trọng là phải có rất rõ ràng về những gì bạn đang làm mẫu và những giới hạn của nó. Ví dụ:

  • Car một trường hợp của một chiếc xe hơi hoặc một mô hình/mô hình cụ thể? Xe máy có phải là car không? Nếu bạn định đổi tên thành Vehicle, là một chiếc xe đạp?
  • Có phải là Item một loại mục, ví dụ của mục hoặc quantity phiên bản của mục không?
  • Có phải ShoppingCart chỉ là một danh sách các mặt hàng/số lượng hoặc có tính năng khác không? Liệu nó hợp nhất các bản sao của một mục bằng cách tổng hợp số lượng?
  • Danh sách yêu thích là một loại giỏ mua hàng đặc biệt (bạn chưa mua) hay thứ gì khác?
  • Bạn có thể "lưu" một giỏ mua hàng và nhận báo giá (để bạn có thể in ra, mang nó đến sếp của bạn, để nó được ký tắt, và sau đó mua nó)? Trích dẫn ở đâu?
8

folks StackOverflow khác có thể biết rõ hơn, nhưng như xa như tôi biết, không có quy ước đặt tên thường được chấp nhận hay chuẩn công nghiệp liên quan đến kiến ​​trúc theo từng cấp. Mặc dù tôi nghĩ rằng bạn đang đi đúng hướng: moreso hơn so với việc đặt tên cụ thể, việc chọn cách tiếp cận và sử dụng nó một cách nhất quán sẽ giúp làm cho mã của bạn dễ bảo trì hơn.

0

Bạn nên quyết định các quy ước đặt tên mà bạn sẽ sử dụng trước khi bắt đầu dự án của mình. .NET Framework có chứa một số gợi ý về quy ước đặt tên, bạn có thể tìm thấy các đề xuất quy ước đặt tên Visual Basic® tại vị trí này trong tài liệu:

ms-help: //MS.VSCC/MS.MSDNVS/vbcn7/ html/vaconVBNamingRules.htm

Điều quan trọng là phải quyết định và tuân thủ một tập hợp quy ước đặt tên hơn là giới hạn bản thân đối với một quy ước cụ thể. Nó là alsp quan trọng để suy nghĩ thông qua tác động của các quy ước đặt tên bạn sử dụng. Ví dụ, tôi vẫn muốn tiền tố kiểm soát tên với loại điều khiển vì tôi có thể gõ "txt" trong trình soạn thảo mã, nhấn Ctrl + Space và nhận danh sách tất cả các điều khiển hộp văn bản trên biểu mẫu.

Kiểm tra điều nàylink để có cuộc thảo luận chi tiết hơn.

+0

Làm sao tôi phải sử dụng * * ms-help ** docs location? .. – Regent

+0

mở visual studio báo chí F1 và sao chép url ở đó. Nếu bạn có cài đặt MSDN hoàn chỉnh, bạn sẽ thấy trang. nếu không truy cập vào MSDN.com và tìm kiếm các đề xuất quy ước đặt tên Visual Basic. Đừng nghĩ rằng câu trả lời xứng đáng một cuộc bỏ phiếu xuống chỉ là beacause bạn không thể con số này ra –

+0

@Vinay B R, chỉ cần kiểm tra rằng tôi đã cài đặt đầy đủ thư viện MSDN, nhưng vẫn không có may mắn với việc mở vị trí đó. Có khó khăn khi đưa ra một [liên kết MSDN] (http://msdn.microsoft.com/en-us/library/0b283bse.aspx) ngay từ đầu? Dù sao tôi không thể tìm thấy bất kỳ thông tin liên quan đến đặt tên nhiều tầng sau khi làm theo các liên kết đó. – Regent

3

Bạn có thể sử dụng không gian tên để tách UI giỏ hàng của bạn và tổ chức kinh doanh, ví dụ:

  • YourApp.Web.UI.ShoppingCart (mua sắm điều khiển web Giỏ hàng của bạn)
  • YourApp.BusinessEntity.ShoppingCart (bạn lớp giỏ mua hàng trong lớp logic kinh doanh của bạn)

Khi bạn tạo/sử dụng đối tượng giỏ hàng, có thể không rõ ràng lúc đầu xem liệu đối tượng là điều khiển giao diện người dùng hay lớp thực thể, nhưng IDE của bạn (visual studio) sẽ cung cấp cho bạn intellisense khi bạn đang viết mã và một tooltip khi bạn di chuột qua tên mà có thể giảm bớt vấn đề của bạn.

Ngoài ra, nếu bạn thực sự muốn giảm bớt đôi mắt của bạn để đọc, bạn có thể sử dụng tiền tố khi đặt tên đối tượng của bạn:

  • YourApp.Web.UI.ShoppingCart uiShoppingCart;
  • YourApp.BusinessEntity.ShoppingCart beShoppingCart;
Các vấn đề liên quan