«coupling» etiketlenmiş sorular

9
Bir yöntem imzasını değiştirdim ve şimdi 25.000'den fazla hatam var. Şimdi ne var?
Son zamanlarda çok büyük bir uygulama üzerinde çalıştığım (15M loc) yeni bir işe başladım. Önceki işimde benzer şekilde büyük bir uygulamamız vardı, ancak (daha iyisi ya da daha kötüsü için) OSGi kullanıyorduk; Yeni uygulama belki birkaç .dlls ile sadece bir büyük kod tabanıdır. Bu yüzden bu sınıfın arayüzünü değiştirmem gerekiyor, …

11
Basamaklı refactoringleri nasıl önleyebilirim?
Bir projem var. Bu projede bir özellik eklemek için yenilemek istedim ve özelliği eklemek için projeyi yeniden düzenledim. Sorun şu ki, bittiğinde, uyum sağlamak için küçük bir arayüz değişikliği yapmam gerektiği ortaya çıktı. Ben de değişikliği yaptım. Ve sonra tüketici sınıf, yeni arayüzle mevcut arayüzüyle uygulanamaz, bu yüzden de yeni …

6
“Fonksiyonlar ve veriler arasında sıkı bağlantı” neden kötü?
Bu alıntıyı " Clojure'nin Sevinci" sinde p. 32, ancak birileri geçen hafta akşam yemeğinde bana aynı şeyi söyledi ve ben de başka yerlerde duydum: Nesne yönelimli programlamanın dezavantajı [A], fonksiyon ve veri arasındaki sıkı bağlantıdır. Bir uygulamada gereksiz eşlemenin neden kötü olduğunu anlıyorum. Ayrıca değişken durum ve kalıtımın, Nesneye Yönelik …

5
Sabitleri nereye koymalı ve neden?
Çoğunlukla büyük uygulamalarımızda, genellikle "sabitler" için yalnızca birkaç yerimiz vardır: GUI ve iç kalıcılar için bir sınıf (Sekme Sayfa başlıkları, Grup Kutusu başlıkları, hesaplama faktörleri, numaralandırmalar) Veritabanı tabloları ve sütunları için bir sınıf (bu bölüm kod oluşturulur) artı bunlar için okunabilir adlar (el ile atanır) Uygulama mesajları için bir sınıf …

3
Bağımlılık enjeksiyonu kuplajı nasıl arttırır?
Bağımlılık enjeksiyonunun Wikipedia sayfasında , dezavantajlar bölümü bize şunu söylüyor: Bağımlılık enjeksiyonu, bir alt sistemin kullanıcısının bu alt sistemin ihtiyaçlarını karşılamasını zorunlu kılarak bağlantıyı arttırır. bağımlılık enjeksiyonuna karşı bir makaleye bağlantı ile . Bağımlılık enjeksiyonu, sınıfın somut uygulama yerine arayüzü kullanmasını sağlar. Bu, kuplajın azalmasına neden olmalı , değil mi? …

3
PyIt / Qt uygulamalarındaki mantıktan UI'yi nasıl düzgün şekilde ayırırım?
Geçmişte bu konu hakkında çok şey okudum ve Bob Amca'nın bu gibi ilginç konuşmalarını izledim . Yine de, masaüstü uygulamalarımı düzgün bir şekilde tasarlamak ve hangisinin UI tarafında ve hangilerinin mantık tarafında olması gerektiğini ayırt etmek oldukça zor buluyorum . İyi uygulamaların çok kısa bir özeti böyle bir şeydir. Mantığınızı …
20 design  python  mvc  gui  coupling 

5
Bir tip neden kurucusuyla birleştirilsin ki?
Kısa bir süre önce Kod İncelemesinde şöyle başlayan bir java cevabı sildim : private Person(PersonBuilder builder) { Durdurmak. Kırmızı bayrak. Bir PersonBuilder bir Kişi inşa eder; bir Kişiyi bilir. Person sınıfı bir PersonBuilder hakkında hiçbir şey bilmemelidir - bu sadece değişmez bir tiptir. Burada, A'nın A'ya bağlı olan B'ye bağlı …

4
Olay güdümlü programlama: Ne zaman buna değer?
Tamam, bu sorunun başlığının neredeyse aynı olduğunu biliyorum. Olay tabanlı programlamayı ne zaman kullanmalıyım? ancak bu sorunun cevabı, karşılaştığım olaydaki olayları kullanmam gerekip gerekmediğime karar vermeme yardımcı olmadı. Küçük bir uygulama geliştiriyorum. Bu basit bir uygulama ve çoğunlukla işlevselliği temel CRUD. Belirli olaylardan sonra (belirli verileri değiştirirken) uygulama, söz konusu …

3
Ayrılma REST'te KURU mu?
Varolan bir Java API'sinin işlevlerinin çoğunu ortaya çıkarmak için bir REST API oluşturuyorum. Her iki API da kuruluşumda dahili kullanım içindir; Harici kullanım için tasarım yapmak zorunda değilim. Her iki API üzerinde de etkim var ancak REST'i uyguluyorum. Java API yerel uygulamalar için kullanılmaya devam edecektir ("kullanımdan kaldırılmamaktadır"), ancak REST …
19 java  api  rest  coupling  dry 

8
Dizelerle eşleştirme, sınıf yöntemlerinden daha mı gevşek?
Swing kullanarak Java'da bir okul grubu projesine başlıyorum. Veritabanı masaüstü uygulamasında basit bir GUI. Profesör bize geçen yılki projenin kodunu verdi, böylece işleri nasıl yaptığını görebildik. Benim ilk izlenim kod olması gereken çok daha karmaşık olmasıdır, ama programcılar sadece yazmadım koda bakarken sık sık bunu düşünüyorum. Sisteminin iyi veya kötü …
18 java  coupling 

6
Nesneye Dayalı Tasarımda Gevşek Kavrama
GRASP öğrenmeye çalışıyorum ve bu düşük kuplaj hakkında açıkladı ( burada sayfa 3 ) ve bunu bulduğumda çok şaşırdım: addTrackBir Albumsınıfın yöntemini düşünün , iki olası yöntem şunlardır: addTrack( Track t ) ve addTrack( int no, String title, double duration ) Hangi yöntem kuplajı azaltır? İkincisi, Album sınıfını kullanan sınıfın …

3
Uygulama ayrıntılarına bağlanmadan birim test davranışları
Her şey yolunda gitmediği konuşmasında TDD, Ian Cooper'ın Kent Beck'in TDD'deki birim testlerinin arkasındaki asıl amacını itiyor (özel olarak sınıf yöntemlerini değil, davranışları test etmek için) ve testleri uygulamaya bağlamaktan kaçınmayı savunuyor. save X to some data sourceTipik bir hizmet ve depo grubuna sahip bir sistemde olduğu gibi bir davranış …

5
DRY'yi kuplajı arttırmadan uygulamak mümkün müdür?
Bir F fonksiyonunu uygulayan bir yazılım modülümüz A olduğunu varsayalım. Başka bir B modülü F 'ile aynı fonksiyonu uygular. Yinelenen koddan kurtulmanın birkaç yolu vardır: A'nın B'den F 'kullanmasına izin verin. B'nin A'dan F'yi kullanmasına izin verin. F'yi kendi modül C'sine yerleştirin ve hem A hem de B'yi kullanmasına izin …

3
DRY ve OOD ile tanıtılan kod bağlantısı
DRY vs Code coupling hakkında rehberlik arıyorum. Kodumu çoğaltmayı sevmiyorum ve ayrıca ilgisiz modüller arasında kod bağlamayı sevmiyorum. Çoğaltma tanıtıldıktan bir yıl sonra aynı kod tekrar bulursam bu yüzden yinelenen kodu refactor. Ancak, gerçek dünyanın çok daha öngörülemez olduğu durumları giderek artan bir şekilde yaşadım ve kodu yeniden düzenledikten sonra, …
14 design  dry  coupling 

5
Bağımlılık enjeksiyonu nasıl kullanılır ve zamansal bağlantıdan nasıl kaçınılır?
Ben Serviceyapıcı yoluyla bağımlılıkları alır ama aynı zamanda kullanılabilmesi için özel veri (bağlam) ile başlatılması gerektiğini varsayalım : public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; private readonly object dependency3; public Service( …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.