2010-08-23 23 views
13

Sınıflarım/ad alanım/denetimlerimde adlandırma sorunlarım var.Çok katmanlı bir uygulamadaki sınıflar için önerilen adlandırma kuralı nedir?

İş kitaplığımda Alışveriş adı verilen ad alanı var. Aşağıdaki sınıfları içerir: ShoppingCartItem
shoppingcart benim ASP.net uygulamasında
ShoppingCartManager

Ben grafiksel bir shoppingcart örneğinin öğeleri temsil eden bir denetim oluşturmak istiyorum. Normalde, bu ShoppingCart kontrolünü çağırırdım, ama yine de ShoppingCart adında bir başka sınıf mı? Elbette derleme ve cetera işe yarayacaktı ama bence hala çirkin. Sanırım iş sınıflarımı temsil etmeleri gereken şeyleri anlatan bir problemim var. Çünkü sunum katmanına gelince, iş sınıfını aynı şekilde temsil etmesi gereken kontrolleri adlandırıyorum.

Sanırım "Görünüm" gibi bir son ek ekleyebilirim, ancak bunu doğru yapmak istiyorum.

Çok katmanlı bir uygulama için önerilen adlandırma nedir?
Sunu katmanı içinde bir ShoppingCart öğelerini temsil eden denetimi nasıl adlandırmalıyım?

Düzenleme: İlgili Sorular: How should I name database wrapper object?

cevap

10

MVC paradigmasında, Foo, FooView ve FooController olması oldukça yaygındır.

Onları farklı bir hiyerarşiye yapıştırmanın daha kolay olduğuna karar verebilirsiniz (Shopping.Model.Cart, Shopping.View.Cart). Kavramsal olarak temiz, ama bence oldukça okunamıyor. Farklı adlar yerine farklı adlar kullanabilirsiniz (Shopping.View.CartView).

İyi bir IDE, bir şeyleri taşımanıza/yeniden adlandırmanıza izin verir, bu nedenle mükemmel adında bir şey için endişelenme konusunda endişelenmenize gerek kalmaz.Ne modellediğinize ve sınırlamalarının ne olduğuna dair çok olmak daha önemlidir. Örneğin ...

  • Car bir otomobil veya belirli bir model/model araba örneğidir? Bir motosiklet car mu? Vehicle'a yeniden adlandıracaksanız, bir bisiklet mi?
  • Item öğenin bir öğesi, öğenin bir örneği veya öğenin quantity örneğidir?
  • ShoppingCart yalnızca bir öğe/miktar listesi veya başka özellikleri var mı? Miktarı toplayarak bir ürünün kopyalarını birleştirir mi?
  • İstek listesi özel bir alışveriş sepeti (henüz satın almadıysanız) veya başka bir şey var mı?
  • Bir alışveriş sepetini "kaydedebilir ve fiyat teklifi alabilir misiniz? (Böylece yazdırabilir, patronunuza götürebilir, imzalayabilir ve satın alabilirsiniz)? Alıntı nerede saklanır?
8

Diğer StackOverflow millet daha iyi biliyorum ama bildiğim kadarıyla, katmanlı mimariye ilişkin herhangi sık kabul edilen veya endüstri standardı adlandırma kuralı var olabilir. Doğru yolda olduğunuzu düşünmeme rağmen: belirli bir isimlendirmeden daha moreso, bir yaklaşım seçip tutarlı bir şekilde kullanmanız, kodunuzun daha iyi korunmasına yardımcı olacaktır.

0

Projenize başlamadan önce kullanacağınız adlandırma kurallarına karar vermelisiniz. .NET Framework, adlandırma kurallarına ilişkin bir dizi öneri içerir, bu konumda Visual Basic® adlandırma kuralı önerilerini şu konumda bulabilirsiniz:

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

Bir dizi adlandırma kuralına karar vermek ve bunlara uymak, kendinizi belirli bir kişiyle sınırlamaktan önemlidir. Kullandığınız adlandırma kurallarının etkisi ile düşünmek önemlidir. Mesela, kod denetleyicisine "txt" yazabilirim, Ctrl + Space tuşlarına basabilir ve formdaki tüm metin kutusu denetimlerinin bir listesini alabilirim.

Kontrol dışarı daha detaylı tartışma için bulink.

+0

*: Gerçekten okumak için gözlerini hafifletmek istiyorsanız sizin nesneyi adlandırırken

Alternatif olarak, öneki kullanabilirsiniz * ms-help ** docs konumu? .. – Regent

+0

açık görsel stüdyo F1 tuşuna basın ve orada url kopyalayın. Eksiksiz MSDN kurulumuna sahipseniz, sayfayı göreceksiniz. değilse MSDN.com'a gidin ve Visual Basic adlandırma kuralı önerilerini arayın. Yanıtı aşağı bir oyu hak etmediğini düşünmeyin, sadece bu programı çözemediniz mi? –

+0

@Vinay B R, sadece tam MSDN kitaplığı yüklü olduğunu kontrol ettim, ancak bu konumu açarken hala şans yok. İlk etapta [MSDN link] (http://msdn.microsoft.com/en-us/library/0b283bse.aspx) vermek zor muydu? Her neyse, bu bağlantıları takip ettikten sonra çok katmanlı bir adlandırma ile ilgili bilgi bulamadık. – Regent

3
Eğer alışveriş sepeti UI ve iş varlık, örneğin ayırmak için ad kullanabilirsiniz

:

  • YourApp.Web.UI.ShoppingCart (Alışveriş sepetiniz web kontrolü)
  • YourApp.BusinessEntity.ShoppingCart (işletme mantığı tabakasında Alışveriş sepetiniz sınıfı

Bir alışveriş sepeti nesnesi oluşturduğunuzda/kullandığınızda, ilk önce nesnenin bir UI denetimi mi yoksa bir varlık sınıfı mı, IDE'niz mi olduğu açık olmayabilir. (görsel stüdyosu), kodunuzu yazarken intellisense ve sorununuzu kolaylaştıracak adı yazdığınızda bir araç ipucu sağlayacaktır. Bunu kullanmak nasıl yapayım

  • YourApp.Web.UI.ShoppingCart uiShoppingCart;
  • YourApp.BusinessEntity.ShoppingCart beShoppingCart;
İlgili konular