Bence kötü bağlanmış modüllerin bir numaralı göstergesi bilateral bağımlılıklardır. Örneğin, Modül1, Modül2'deki bazı işlevleri çağırır ve Modül2, Modül1'deki bazı işlevleri çağırır.
Çoğu arabirim tek yönlü olmalıdır. Çağrılan modülün çağrının bir parçası olarak döndürülmeyen çağrı modülüne bazı bilgiler iletmesi gerekiyorsa, mesaj kuyruğu gibi bir tür mesaj iletme veya olay tetikleme mekanizması kullanmalıdır. İdeal olarak, mesaj başlatma arayüzü tanıtıcı bir başlatma veya kayıt işlemi sırasında geçirilmelidir. Bu, arayüzü tamamen modülün olayın kim için olduğunu umursamayacak şekilde soyutlar ... dolayısıyla ayrıştırılır.
Diğer bir gösterge, bir modülün belirli bir veri seti için sürekli olarak başka bir modül çağırmasıdır. Bu, veri kümesinin gerçekte kime sahip olması gerektiğini sorgulamanız gerekir. Söz konusu modülün neden her zaman başka bir modüle ait verileri görmesi gerekiyor?
Üçüncü bir araç, kendinize şu soruyu sormaktır: "Bu modülü dışarı çekip diğer modüllerde değişiklik yapmadan değiştirebilir miyim?
Bu hiçbir şekilde kapsamlı bir liste değildir, ancak yazılım tasarlarken kendime sorduğum ilk üç şeydir.