afferent
Bir şey bir sürü farklı şey kullanıyorsa (çok sayıda afferent kaplin), bu şeylerden herhangi biri değişirse kırılmaya eğilimli olabilir.
Kararsızlık = 1
Gösterişli
Bir şey bir sürü farklı şey tarafından kullanılıyorsa (çok sayıda efferent kaplin), eğer değişirse birçok şeyi kırmaya eğilimli olabilir.
Kararsızlık = 0
istikrar
Martin'in "kararlılık" tanımı, "değiştirilmesi zor" ile "değiştirmek için çok az nedeni olması" arasındaki egzotik bir karışımdır. Yine de istikrarsızlığı metriği yalnızca "değişim zorluğu" nu tanımlar. "Değişim nedenleri", yalnızca arayüzlerinizi uygun bir şekilde, uygun bir soyutlama düzeyinde tasarlamak ve kullanıcı sonu gereksinimlerini daha net bir şekilde anlamak gibi kolayca hesaplanamayan faktörlerle çok daha fazla ilgili olacaktır.
Düşük afferent kuplajlı yüksek verimli kuplaj stabilite sağlar (bir sürü şeyi kıracağı için değiştirilmesi zor bir şeyde olduğu gibi), tersi istikrarsızlık verir (bir sürü şeyi kırmayacağı için değiştirilmesi kolay bir şeyde olduğu gibi) .
Çok sayıda afferent kaplin, tasarımınızın odaklanmadığının bir göstergesi olabilir - bir dizi farklı şey kullanıyor, bu yüzden açık ve tek bir sorumluluktan yoksun olabilir.
Çok sayıda verimli bağlantı, başlangıçta tasarımınızın yaygın olarak (yeniden) kullanıldığını gösterdiği için gerçekten iyi bir şey olarak yorumlanabilir. Yine de, tasarımı sık sık her şeyi kıracak şekilde değiştirmek istersiniz, bu kötü olur. Dolayısıyla, çok sayıda verimli kaplin ile, bu tür paketlerin "değiştirmek için çok az nedeni vardır ya da hiç nedeni yoktur". Tasarımlar, değişmek için nedenleri olmamak açısından dengeli olmalıdır, çünkü aynı şekilde değiştirilmesi çok zor olacaktır.
Kararlı Soyutlama Prensibi
Bağımlılık ters çevirme (doğal olarak bağımlılık enjeksiyonunu gerektirir) ve SAP (sabit soyutlamalar ilkesi) gibi kavramların tümü bağımlılıkların soyutlamalara doğru aktığını gösterir. Ve "değişmek için birkaç neden" olması bağlamında "istikrarı" göz önünde bulundurmanın basit bir nedeni var. Soyut bir arayüz somut detaylardan bahsetmez, sadece "şeylerin ne olduğu" yerine "ne yapılması gerektiğine" odaklanır ve bu nedenle değiştirmek için daha az nedeni vardır. Anakartlarımızdaki hızlandırılmış grafik bağlantı noktasının (soyut arayüz) tasarım değişikliğine uğrayabilmesi, GPU'ya takılan GPU'dan (somut bir ayrıntı) daha az nedene sahiptir.
Yeniden Kullanılabilirlik ve Yeniden Kullanım
Martin ile bir şekilde çarpışan birini önerebilirsem kendime ait bir tür metrik, en çok yeniden kullanılabilir kütüphanelerin diğer kodları minimal olarak yeniden kullanması gerektiğini itmek isterim. Bu, istikrarsızlığı zor 0'a doğru iter. Değişmek için asgari nedenlere sahip olmanın pratik nedenlerinden dolayı, aynı zamanda konuşlandırılması en kolay kütüphaneyi tanıtmak içindir. Bir düzine farklı kütüphaneye dayanan genel amaçlı, yaygın olarak kullanılan bir kütüphanenin, değişmesi için birçok nedeni ve konuşlandırılması zor olabilen garip bir şekilde dağıtılmış dağılımı vardır. Buradaki fark, benim durumumda "değişme nedenleri" nin, kütüphanenin kararlı sürümlerini yayınlamayı amaçlayan kütüphane odaklı bir görünümden geldiği için uygulamaya bile uzanmasıdır. Martin uygulamayı çok ayrı bir parça olarak indirebilir,
Dağıtım açısından, uygulama ve arayüz bulanıklaşır veya kararsız bir kütüphaneye kullanıcı bağımlılıkları sağlamak için birlikte bulanıklaşır. Arayüz açısından yalnızca arayüz kullanılır ve ilişkili uygulama ayrıntıları tamamen ayrıdır.