Tektonlar sık sık kötü bir tasarım seçimi olduğu söylenir, bu yüzden onları önlemek istediğinizde nasıl bir uygulama tasarlamanız gerekir?Singletons'u neyle değiştirdiniz?
cevap
yerine onlara
Özellikle, DI çerçeveler, tek bir kablodan daha fazla yalıtım sağlayarak ve gerekirse daha iyi yalıtım ve ileride birden fazla örneğe genişletme olanağı sağlayarak, gereken birçok kablolamayı basitleştirebilir. –
Benim 2 cent için küresel referans sağlama, size (kullandığınız temelde tekiz) bağlı servisleri enjekte etmek Dependency Injection böyle kavramları kullanabilirsiniz.
Uygulamanızı tek bir nesnenin nesnenize geçirilip geçirilmediğinin bir önemi yoktur.
İçinde MySingleton.Instance varsa -> kötü görünüyor ve bu ile sıkıca bağlı olduğunu düşünün. MySignleton'ı bir yöntemde parametre olarak geçirdiyseniz ve bunun dışında bir MySingleton.Instance veya yeni MySingleton() -> oh olarak tanımlanırsa, yine de alay edebilir veya değiştirebilirim, böylece gerçekten önemli değil.
- 1. Tablo seçim hücresini seçimin üzerine mi değiştirdiniz?
- 2. NSOperationQueue ile KVO kullanırken sözlük değerlerini yanlış mı değiştirdiniz?
- 3. html ile html arasındaki bağlantıyı kaldırmak için bu kodun neyle yanlış olduğunu
- 4. Google Cloud API - Uygulama Varsayılan kimlik bilgileri aşağıdaki kod, <a href="https://developers.google.com/identity/protocols/application-default-credentials" rel="noreferrer">Google's documentation</a> den değiştirdiniz
- 5. Can .js dosyası "include" başka bir .js dosyası
- 6. Denetleyicinin yanıtını phoenix
- 7. uyarı: Zaman # succ geçersizdir; zaman kullan + 1
- 8. Eclipse jboss ile uzaktan hata ayıklama
- 9. easteregg Java
- 10. yapmak nasıl bir ortam değişkeni gibi <strong>% userprofile%</strong> içerecek şekilde ben mercurial.ini dosyayı değiştirebilir nasıl mercurial.ini
- 11. IE'de bir komut dosyası nasıl yüklenmez?
- 12. Ön Kontrol Nedir ve PHP'de nasıl uygulanır?
- 13. Bash'de, yumuşak bağlantının neye işaret ettiğini nasıl güvenli bir şekilde belirleyebilirim?
- 14. Phalcon'da özel yolları nasıl yapılandırabilirim?
- 15. Bu <pre><code>RewriteRule ^cam/([^/]+) /index.php?cate=$1[L] </code></pre> <p>benim şimdiki yeniden yazma hat</p> olan iki değişken
- 16. Qt Widget geçici olarak tam ekran
- 17. Angularjs. Özel filtreye argüman olarak değişkeni nasıl iletebilirim?
- 18. Delphi 2009'da jenerik ve anonim yöntemler kullanarak ne gibi sorunlar var?
- 19. Birlik WebGL inşa ben WebGL platformu için bir çok oyunculu oyun üzerinde çalışıyorum hataları
- 20. Expand tuval/WPF app BitmapImage şeffaf arka plan
- 21. Web düzeylerinde günlük düzeyleri ayrıntılarını nasıl değiştirebilirim?
- 22. Android Uygulama içi faturalandırma v3, doğru yerelleştirilmiş fiyatı döndürmüyor (getSkuDetails)
- 23. Raylar: Kalıcı tanımlama bilgilerini birden çok alt etki alanında nasıl paylaşabilirim?
- 24. Jdbc bağlantısı kapat ve hazırla kapat kapat
- 25. Genel alıcı ve özel ayarlayıcı ile özellikler oluşturabilir miyim?
- 26. Request.Form ile herhangi bir ayrıntıyı bilmeden nasıl geçilir?
- 27. ASP.NET MVC Çerezler olmadan içerik nasıl sunulur (Azure)?
- 28. Big Data ve Web Analytics'e nasıl başlanır
- 29. Git bir .rdb redis db dosyasında değişiklik izlemiyor mu?
- 30. Çok yönlülük.pool.ApplyResult belgelerinin nerede bulunur?
Kullanımları var, ancak bunları ne zaman kullanmaları gerektiğini bilmelisiniz. Kötü bir tasarım seçiminden ziyade kötü bir uygulama seçiminin parçası olabileceğini söyleyebilirim. –
Bu makaleyi kontrol edin: [http://www.ibm.com/developerworks/webservices/library/co-single.html](http://www.ibm.com/developerworks/webservices/library/co-single.html – pierocampanelli