Castle Windsor, nedir ve neden umursayayım?
Uzun süredir Windows geliştirici win 32 ve erken COM benim diş kesmek yaşıyorum. Ben çalıştırdım .C 2001, çok güzel akıcı olduğum için Net# ve CLR. Asla Yığın Taşması katılan başlayana kadar Kale Windsor duymuştum. "" Rehberi, ama işe yaramıyor. Başlarken Kale Windsor okudum
Bu eski köpeğe yeni numaralar öğretemezsin, ve kurumsal uygulamalar içine Castle Windsor entegre olmam gerektiğini söyle.
CEVAP
Castle Windsor kontrol aracı gidilmiştir. Bunun gibi başkaları da var.
Sen önceden oluşturulmuş ve pre-kablolu bağımlılıkları oraya doğru ile nesneleri verebilir.Tüm nesne grafiği yansıma ve yapılandırma ile oluşturulan yerine "new" operatörü.
Buradan başlayın: http://tech.groups.yahoo.com/group/altdotnet/message/10434
E-posta gönderen bir sınıf olduğunu varsayalım. EmailSender. Başka bir sınıf WorkflowStepper var düşünün. WorkflowStepper içinde EmailSender kullanmanız gerekir.
Her zaman new EmailSender().Send(emailMessage);
diyebilirsin
ama bu - new
- kullanımı değiştirmek zor SIKI bir KAVRAMA oluşturur. (bundan sonra tüm küçük yapmacık bir örnektir)
Eğer bu kötü çocuk WorkflowStepper içinde newing yerine, sadece yapıcı geçti.
Arayan her kimse çok sonra EmailSender yeni gerekiyordu.
new WorkflowStepper(emailSender).Step()
Düşünün bir sorumluluk (google SRP).. bu küçük sınıfların yüzlerce var ve WorkflowStepper içinde bir kaç tanesini kullanın:
new WorkflowStepper(emailSender, alertRegistry, databaseConnection).Step()
WorkflowStepper
AlertRegistry
yazarken endişe verici değil EmailSender
ayrıntıları hakkında düşünün
Sadece çalıştığınız endişe endişe.
Tüm bu grafik (ağaç) nesneleri ve bağımlılıklar bunu yaptığınızda: böylece ÇALIŞMA zamanında kablolu, alır düşünün
WorkflowStepper stepper = Container.Get<WorkflowStepper>();
tüm bağımlılıkları ile 8* *gerçek bir anlaşma otomatik olarak onlara ihtiyacınız dolu olsun.
new
yoktur
Sadeceolur- çünkü ne ihtiyacı var ne de bunu biliyor.
Ve test edilebilir ve tekrarlanabilir bir şekilde daha iyi tasarlanmış, KURU kodu ile daha az hata yazabilirsiniz.
Bir serialVersionUİD nedir ve neden ku...
Yansıma nedir ve neden yararlıdır?...
Neden Python kodunu daha hızlı bir işl...
JSON nedir ve neden kullanmalıyım?...
Toplamalar ve Bakla nedir ve nasıl/ned...