Uyum ve Kuplaj Arasındaki Fark


486

Uyum ve kuplaj arasındaki fark nedir?

Bağlama ve uyum, iyi veya kötü yazılım tasarımına nasıl yol açabilir?

İkisi arasındaki farkı ve bunların genel kod kalitesi üzerindeki etkisini özetleyen bazı örnekler nelerdir?


2
göz
atın

3
Bu makaleye dikkat çekmek istiyorum: SOLID Yazılım Geliştirme, Her Seferinde Bir Adım . Grz, Kris.
Kris van der Mast

4
Bu konudaki en son gönderi
janisz

Yanıtlar:


703

Uyum , sınıfın (veya modülün) neler yapabileceğini ifade eder. Düşük uyum, sınıfın çok çeşitli eylemler yaptığı anlamına gelir - geniş, ne yapması gerektiğine odaklanmamıştır. Yüksek uyum, sınıfın ne yapması gerektiğine, yani yalnızca sınıfın niyetiyle ilgili yöntemlere odaklandığı anlamına gelir.

Düşük Uyum Örneği:

-------------------
| Staff           |
-------------------
| checkEmail()    |
| sendEmail()     |
| emailValidate() |
| PrintLetter()   |
-------------------

Yüksek Uyum Örneği:

----------------------------
| Staff                   |
----------------------------
| -salary                 |
| -emailAddr              |
----------------------------
| setSalary(newSalary)    |
| getSalary()             |
| setEmailAddr(newEmail)  |
| getEmailAddr()          |
----------------------------

İçin olduğu gibi bağlantı , bu iki sınıf / modüller birbirine doğru ne kadar ilgili ya da bağımlı belirtmektedir. Düşük çiftli sınıflar için, bir sınıfta önemli bir şeyi değiştirmek diğerini etkilememelidir. Yüksek bağlantı kodunuzu değiştirmeyi ve korumayı zorlaştıracaktır; sınıflar birbirine sıkı sıkıya bağlı olduğundan, bir değişiklik yapmak tüm sistemin yenilenmesini gerektirebilir.

İyi yazılım tasarımı yüksek kohezyona ve düşük bağlantıya sahiptir .


12
Birkaç yöntemi kaldırmanın ve birkaç tane daha eklemenin uyumu nasıl artırdığını görmüyorum. Burada biri yardım edebilir mi lütfen?
Saket Jain

3
@SaketJain sadece bazı yöntemleri kaldırmak ve bazılarını eklemek değil. yöntemler sınıfın amacıyla ilişkilidir (eğer bu açıklama daha açıksa).
mauris

4
üst kısımdaki düşük uyum örneği oldukça iyi görünüyor, sanırım yanlışlıkla "yüksek uyum" demek istediniz
1616'da

37
@SaketJain Staff sınıfı, e-postaları kontrol ettiğimiz, gönderdiğimiz veya doğruladığımız yer değil. Bu işlevler varsayımsal bir E-posta sınıfına girmelidir, bu yüzden düşük bir uyumdur. İkinci örnekte, Personel sınıfı Personel ile ilgili verileri ayarlamak ve almak için yalnızca uygun bilgileri içerir. Başka bir sınıf tarafından yönetilmesi gereken eylemleri gerçekleştirmezler.
Antonio Pantano

3
@JonathanC, örneklerin hala bir örnek olması için farkı (matematik kanıtında olduğu gibi) kanıtlamak zorunda değildir. Daha yararlı olduğunu düşündüğünüz örnekleri Yanıtlamak veya Yorum Yapmaktan çekinmeyin. set& getFonksiyonları "Çalışanlar" ortamla daha özeldir işlevsellik göstermek - yüksek özgüllük verdikleri örnek daha yüksek uyum.
cellepo

81

Uyum , bir modül içindeki ilişkinin göstergesidir .

Bağlantı , modüller arasındaki ilişkilerin göstergesidir .

resim açıklamasını buraya girin

yapışma

  • Uyum, modül içindeki ilişkinin göstergesidir.
  • Uyum, modülün göreli işlevsel gücünü gösterir.
  • Uyum, bir bileşenin / modülün tek bir şeye odaklandığı derecedir (kalite).
  • Tasarım yaparken, sistemin diğer modülleriyle çok az etkileşimle tek bir göreve (yani, tek fikirlilik) odaklanan yüksek bir bütünlük için çalışmalısınız.
  • Uyum, örneğin, tüm üyeleri varsayılan görünürlüğe sahip bir paketle görülebilen sınıfın saklandığı verilerin doğal uzantısıdır. Uyum, Modül İçi Konsepttir.

Kavrama

  • Bağlantı, modüller arasındaki ilişkilerin göstergesidir.
  • Kuplaj, modüller arasındaki bağıl bağımlılığı / bağımlılığı gösterir.
  • Bağlantı, bir bileşenin / modülün diğer modüllere bağlanma derecesidir.
  • Tasarlarken düşük bağlantı için çaba göstermelisiniz, yani modüller arasındaki bağımlılık daha az olmalıdır
  • Özel alanlar, özel yöntemler ve kamuya açık olmayan sınıflar yapmak gevşek bir bağlanma sağlar.
  • Kuplaj, Modüller Arası Konsepttir.

bu bağlantıyı kontrol et


77

Modüller içinde yüksek uyum ve modüller arasında düşük bağlantı genellikle OO programlama dillerinde yüksek kalite ile ilgili olarak kabul edilir.

Örneğin, her Java sınıfının içindeki kodun yüksek iç bütünlüğü olmalıdır, ancak diğer Java sınıflarındaki koda olabildiğince gevşek bağlanmış olmalıdır.

Meyer'ın Nesneye Yönelik Yazılım Yapısı (2. baskı) 3. Bölümü bu konuların güzel bir açıklamasıdır.


3
Kavramlar gerçekten OO programlama ile sınırlı değil. Bir şey varsa, OO dillerinin bir hedefinin programcıya yüksek uyum / düşük kuplaj hedeflerine doğru rehberlik etmesini öneriyorum.
Hutch

57

Uyum , bir yazılım öğesinin sorumluluklarının ne kadar ilgili ve odaklanmış olduğunun bir göstergesidir.

Kuplaj , bir yazılım elemanının diğer elemanlara ne kadar güçlü bağlandığını ifade eder.

Yazılım öğesi sınıf, paket, bileşen, alt sistem veya bir sistem olabilir. Ve sistemleri tasarlarken, Yüksek kohezyona sahip ve Düşük kuplajı destekleyen yazılım elemanlarına sahip olmanız önerilir .

Düşük kohezyon , bakımı, anlaşılması zor ve yeniden kullanılabilirliği azaltan monolitik sınıflarla sonuçlanır. Benzer şekilde Yüksek Kuplaj , sıkı sıkıya bağlı sınıflar ile sonuçlanır ve değişiklikler yerel değildir, değiştirilmesi zordur ve yeniden kullanımı azaltır.

ConnectionPoolAşağıdaki gereksinimlere sahip tipik bir monitör tasarladığımız varsayımsal bir senaryo alabiliriz . Bunun gibi basit bir sınıf için çok fazla görünebileceğini unutmayın, ConnectionPoolancak temel amaç sadece basit bir örnekle düşük birleşme ve yüksek uyumu göstermek ve yardımcı olması gerektiğini düşünüyorum.

  1. bağlantı kurma desteği
  2. bağlantıyı serbest bırak
  3. bağlantı ile kullanım sayısı arasındaki istatistikleri alma
  4. bağlantı vs zaman hakkında istatistik almak
  5. Bağlantı alma ve depolama bilgilerini daha sonra raporlanmak üzere bir veritabanında saklayın.

Düşük uyum ile ConnectionPooltüm bu işlevleri / sorumlulukları aşağıdaki gibi tek bir sınıfa zorla doldurarak bir sınıf tasarlayabiliriz . Bu tek sınıfın bağlantı yönetiminden, veritabanı ile etkileşimden ve bağlantı istatistiklerini korumaktan sorumlu olduğunu görebiliriz.

Düşük Uyum Bağlantı Havuzu

Yüksek uyum ile bu sorumluluğu sınıflara atayabilir ve daha sürdürülebilir ve tekrar kullanılabilir hale getirebiliriz.

Yüksek Uyum Bağlantı Havuzu

Düşük bağlantıyı göstermek için ConnectionPoolyukarıdaki yüksek uyum diyagramıyla devam edeceğiz . Yukarıdaki şemaya yüksek uyumu desteklese de bakarsak, sınıfla ConnectionPoolsıkı sıkıya bağlıdır ConnectionStatisticsve PersistentStoreonlarla doğrudan etkileşime girer. Kuplajı azaltmak yerine, bir ConnectionListenerarayüz ekleyebilir ve bu iki sınıfın arayüzü uygulamasına izin verebilir ve ConnectionPoolsınıfla kaydolmalarına izin verebiliriz . Ve ConnectionPoolbu dinleyiciler aracılığıyla yineleme yapacak ve bağlantı alma ve bırakma olaylarını bildirecek ve daha az eşleşmeye izin verecektir.

Düşük Kavrama Bağlantısı

Not / Kelime veya Dikkat: Bu basit senaryo için aşırıya kaçma gibi görünebilir, ancak uygulamamızın bir işlemi tamamlamak için birden fazla üçüncü taraf hizmetiyle etkileşime girmesi gereken gerçek zamanlı bir senaryo hayal edersek: Kodumuzu doğrudan üçüncü taraf hizmetlerine bağlamak üçüncü taraf hizmetindeki herhangi bir değişikliğin kodumuzda birden çok yerde değişikliklere yol açabileceği anlamına gelir, bunun yerine Facadebu birden çok hizmetle dahili olarak etkileşime girebilir ve hizmetlerde yapılan herhangi bir değişiklik Facadeüçüncü taraf için yerel olur ve üçüncü tarafla düşük bağlantıyı zorunlu kılar Hizmetler.


3
Mükemmel cevap! Mümkünse başka bir örnek kullanabilir misiniz? Bağlantı Havuzu Oluşturma herkese açık olmayabilir. Ne olursa olsun, gerçekten bana yardımcı oldu. Çok teşekkürler!
Saket Jain

ConnectionListener Arayüzünü kullanmak kuplajı azaltmada nasıl yardımcı olur? Anlaması daha kolay bir örnek verebilir misiniz?
abhishek gupta

1
@abhishekgupta Bu örnekte, düşük / gevşek bağlantı elde etmek için gözlemci desenini kullandığımızı fark etmiş olabilirsiniz. Bunun üstesinden gelmek, Observer'ın gevşek bir şekilde birleştirilmiş tasarım yaratmasına nasıl
Madhusudana Reddy Sunnapu

33

Artan kohezyon ve azalan kuplaj iyi yazılım tasarımına yol açar.

Uyum, işlevselliğinizi, ilgili verilerle özlü ve en yakın olacak şekilde bölümlere ayırırken, ayırma işlevi, işlevsel uygulamanın sistemin geri kalanından izole edilmesini sağlar.

Ayrıştırma , yazılımınızın diğer bölümlerini etkilemeden uygulamayı değiştirmenize olanak tanır.

Uyum , uygulamanın işlevselliğe daha spesifik olmasını ve aynı zamanda bakımının daha kolay olmasını sağlar.

Bağlanmayı azaltmanın ve uyumu artırmanın en etkili yöntemi arayüz ile tasarımdır .

Bu, temel işlevsel nesnelerin birbirlerini yalnızca uyguladıkları arabirim (ler) aracılığıyla 'bilmesi' gerektiğidir. Bir arayüzün uygulanması doğal bir sonuç olarak uyumu beraberinde getirir.

Bazı senaryolarda gerçekçi olmasa da, üzerinde çalışmak için bir tasarım hedefi olmalıdır.

Örnek (çok kabataslak):

public interface IStackoverFlowQuestion
      void SetAnswered(IUserProfile user);
      void VoteUp(IUserProfile user);
      void VoteDown(IUserProfile user);
}

public class NormalQuestion implements IStackoverflowQuestion {
      protected Integer vote_ = new Integer(0);
      protected IUserProfile user_ = null;
      protected IUserProfile answered_ = null;

      public void VoteUp(IUserProfile user) {
           vote_++;
           // code to ... add to user profile
      }

      public void VoteDown(IUserProfile user) {
          decrement and update profile
      }

      public SetAnswered(IUserProfile answer) {
           answered_ = answer
           // update u
      }
}

public class CommunityWikiQuestion implements IStackoverflowQuestion {
     public void VoteUp(IUserProfile user) { // do not update profile }
     public void VoteDown(IUserProfile user) { // do not update profile }
     public void SetAnswered(IUserProfile user) { // do not update profile }
}

Bazıları kod tabanınızda başka yerlerde nerede olduklarına bakılmaksızın soruları işleyen bir modül olabilir:

public class OtherModuleProcessor {
    public void Process(List<IStackoverflowQuestion> questions) {
       ... process each question.
    }
}

28

Uyumun en iyi açıklaması Bob Amca'nın Temiz Kodundan gelir:

Sınıfların az sayıda örnek değişkeni olmalıdır. Sınıf yöntemlerinin her biri bu değişkenlerden birini veya daha fazlasını değiştirmelidir. Genel olarak, bir yöntem ne kadar çok değişken yönetirse, bu yöntem sınıfına o kadar bağlı olur . Her bir değişkenin her bir yöntem tarafından kullanıldığı bir sınıf, maksimum düzeyde birleştiricidir.

Genel olarak, bu tür maksimum derecede uyumlu sınıflar oluşturmak ne tavsiye edilebilir ne de mümkün; diğer yandan, uyumun yüksek olmasını istiyoruz . Uyum yüksek olduğunda, sınıfın yöntem ve değişkenlerinin birbirine bağımlı olduğu ve mantıksal bir bütün olarak birbirine asıldığı anlamına gelir.

İşlevleri küçük tutma ve parametre listelerini kısa tutma stratejisi bazen bir yöntem alt kümesi tarafından kullanılan örnek değişkenlerin çoğalmasına neden olabilir. Bu olduğunda, neredeyse her zaman daha büyük sınıftan çıkmaya çalışan en az bir sınıf olduğu anlamına gelir. Değişkenleri ve yöntemleri yeni sınıfların daha uyumlu olması için iki veya daha fazla sınıfa ayırmaya çalışmalısınız.


Muhtemelen bunun en iyi açıklama olduğuna katılıyorum, Bob Amca'da sevdiğim şey, asıl anlamı birkaç cümlede açıklayabiliyor. Bu tanımı bilerek, uyumunu arttırmak için verilen sınıfa ne yapılması gerektiğini anında görebilirsiniz.
Pawel Dubiel

13

basitçe Uyum , bir kod tabanının bir bölümünün mantıksal olarak tek bir atomik birimi oluşturma derecesini temsil eder. Diğer yandan, kuplaj , tek bir birimin diğerlerinden bağımsız olma derecesini temsil eder. Başka bir deyişle, iki veya daha fazla birim arasındaki bağlantı sayısıdır. Sayı ne kadar az olursa kaplin o kadar düşük olur.

Özünde, yüksek uyum, kod tabanının birbiriyle ilişkili kısımlarını tek bir yerde tutmak anlamına gelir. Düşük bağlantı, aynı zamanda, kod tabanının ilgisiz kısımlarını mümkün olduğunca ayırmakla ilgilidir.

Birleşme ve birleşme perspektifinden kod türleri:

İdeal , kılavuzu izleyen koddur. Gevşek bağlanmış ve yüksek oranda yapışkandır. Bu kodu bu resim ile gösterebiliriz:resim açıklamasını buraya girin

Tanrı Nesnesi , yüksek uyum ve yüksek bağlantının getirilmesinin sonucudur. Bu bir anti-desendir ve temel olarak tüm işi bir kerede yapan tek bir kod parçasını temsil eder: kötü seçilmiş , farklı sınıflar veya modüller arasındaki sınırlar zayıf seçildiğinde gerçekleşirresim açıklamasını buraya girin resim açıklamasını buraya girin

Yıkıcı ayırma en ilginç olanıdır. Bazen bir programcı bir kod tabanını o kadar çok ayırmaya çalıştığında, kod odağını tamamen kaybeder:resim açıklamasını buraya girin

burada daha fazlasını okuyun


1
Mükemmel makale ve resimler! Sadece bir düşünceye bir gelişme önerebilirsem, 'kötü seçilmiş' bileşenlerin ilişkisiz semantikli bileşen gruplarını küçük sürülerde nasıl tuttuğunu seviyorum, ancak aralarında gözle görülür şekilde daha fazla ok olması gerektiğini düşünüyorum. Sonuçta, 4 kareli grafiklerinizde bile, bu 'Kuplaj' ekseninin üst aralığına düşen grafik.
Slawomir Brzezinski

1
Ayrıca 'kötü seçilmiş' her sürü içinde daha az ok olması gerektiğini söyleyebilirim. Makalenizde 'kötü seçilmiş' depolar veya fabrikalar olarak kategorize ettiğiniz 'klasör yapısı' örneğini kullanmak kesinlikle birbirinizle konuşmayacaktır.
Slawomir Brzezinski

GÜNCELLEME: Bu önerileri resmin orijinal yazarına sundum ve yazar onlarla anlaştı .
Slawomir Brzezinski

11

Yazılım mühendisliğindeki uyum , belirli bir modülün öğelerinin bir arada olma derecesidir. Dolayısıyla, bir yazılım modülünün kaynak kodu tarafından ifade edilen her bir işlevsellik parçasının ne kadar güçlü ilişkili olduğunun bir ölçüsüdür.

Basit bir ifadeyle eşleştirme , bir bileşenin (bir sınıfın mutlaka zorunlu olmasa da, ne kadar hayal edilse de) bir diğerinin iç işleyişini ya da iç öğelerini ne kadar çok bilmesi, yani diğer bileşen hakkında ne kadar bilgiye sahip olduğudur.

Örnekler ve çizimlerle biraz daha ayrıntılı olarak okumak isterseniz, bu konuda bir blog yazısı yazdım . Sanırım sorularınızın çoğuna cevap veriyor.


4

resim açıklamasını buraya girin

uyum, tek bir sınıfın nasıl tasarlandığı ile ilgilidir. Uyum, bir sınıfın tek, iyi odaklanmış bir amaç ile tasarlandığından emin olmakla en yakından ilişkili Nesne Odaklı ilkedir. Bir sınıf ne kadar odaklanmışsa, o sınıfın bağlılığı da o kadar fazla olur. Yüksek kohezyonun avantajları, bu tür sınıfların sürdürülmesinin düşük kohezyonlu sınıflara göre çok daha kolay (ve daha az sıklıkta değiştirilmiş) olmasıdır. Yüksek kaynaşmanın bir diğer yararı da, iyi odaklanmış bir amaca sahip sınıfların diğer sınıflardan daha çok yeniden kullanılabilir olma eğilimindedir.

Yukarıdaki görüntüde, düşük uyumda, ortak olmayan birçok işin yürütülmesinden sadece bir sınıfın sorumlu olduğunu görebiliriz ki bu da yeniden kullanılabilirlik ve bakım şansını azaltır. Ancak yüksek uyumda, tüm işlerin belirli bir işi yürütmesi için ayrı bir sınıf vardır, bu da daha iyi kullanılabilirlik ve bakım sağlar.


2

Uyum (Uyum): anlamı birlikte , hezyon hangi araçları sopa . Farklı maddelerin parçacıklarının birbirine yapışması sistemi.

Gerçek hayat için örnek: img Nezaket
resim açıklamasını buraya girin

Bütün parçaların toplamından daha büyük -Aristotle.

  • Kohezyon , sıralı bir ölçüm türüdür ve genellikle “yüksek kohezyon” veya “düşük kohezyon” olarak tanımlanır. Yüksek kohezyona sahip modüller tercih edilebilir, çünkü yüksek kohezyon, sağlamlık, güvenilirlik, tekrar kullanılabilirlik ve anlaşılabilirlik gibi çeşitli arzu edilen yazılım özellikleriyle ilişkilidir. Buna karşılık, düşük uyum, sürdürülmesi, test edilmesi, tekrar kullanılması ve hatta anlaşılması zor olan istenmeyen özelliklerle ilişkilidir. wiki

  • Kuplaj genellikle kohezyonla kontrast oluşturur . Düşük kuplaj genellikle yüksek kohezyon ile korelasyon gösterir veya bunun tersi de geçerlidir. Düşük bağlantı genellikle iyi yapılandırılmış bir bilgisayar sisteminin ve iyi bir tasarımın bir işaretidir ve yüksek uyumla birleştirildiğinde, yüksek okunabilirlik ve sürdürülebilirliğin genel hedeflerini destekler. wiki


1

Bence farklılıklar aşağıdaki gibi konulabilir:

  • Uyum, bir kod tabanının bir bölümünün mantıksal olarak tek bir atomik birimi oluşturma derecesini temsil eder.
  • Kuplaj, bir birimin diğerlerinden bağımsız olma derecesini temsil eder.
  • Tam ayrıştırmayı kaynaşmaya zarar vermeden arşivlemek imkansızdır, ya da tam tersi.

Bu blog yazısında daha ayrıntılı olarak yazıyorum.


1

Uyum , bir modülün göreli işlevsel gücünün bir göstergesidir.

  • Uyumlu bir modül, bir programın diğer bölümlerindeki diğer bileşenlerle çok az etkileşim gerektiren tek bir görev gerçekleştirir. Basitçe ifade etmek gerekirse, uyumlu bir modül (ideal olarak) sadece bir şey yapmalıdır.
  • View Geleneksel görünüm:

    bir modülün “tek görüşlülüğü”

  • ViewOO görünümü:

     uyum, bir bileşenin veya sınıfın yalnızca birbiriyle ve sınıf veya bileşenin kendisiyle yakından ilişkili öznitelikleri ve işlemleri kapsadığı anlamına gelir

  • Ev Uyum seviyeleri

    Functional

    Layer

    Communicational

    Sequential

    Procedural

    Temporal

    utility

Birleştirme , modüller arasındaki göreli bağımlılığın bir göstergesidir.

  • Kuplaj, modüller arasındaki arayüz karmaşıklığına, bir modüle giriş veya referansın yapıldığı noktaya ve arayüzden hangi verilerin geçtiğine bağlıdır.

  • Geleneksel Görünüm: Bir bileşenin diğer bileşenlere ve dış dünyaya bağlanma derecesi

  • OO görüşü: sınıfların birbirine bağlanma derecesinin nitel bir ölçüsü

  • Bağlantı seviyesi

    Content

    Common

    Control

    Stamp

    Data

    Out Rutin çağrı

    UseTip kullanımı

    CDahil veya içe aktarma

    #Dış #


1

Kuplaj = iki modül arasındaki etkileşim / ilişki ... Uyum = bir modül içindeki iki eleman arasındaki etkileşim.

Bir yazılım birçok modülden oluşur. Modül elemanlardan oluşur. Bir modülün bir program olduğunu düşünün. Program içindeki bir işlev bir öğedir.

Çalışma zamanında, bir programın çıktısı başka bir program için girdi olarak kullanılır. Buna modül-modül etkileşimi veya iletişimi işlemek için süreç denir. Buna Kuplaj da denir.

Tek bir programda, bir fonksiyonun çıkışı başka bir fonksiyona geçirilir. Buna bir modül içindeki elemanların etkileşimi denir. Buna Uyum da denir.

Misal:

Eşleşme = 2 farklı ailede iletişim ... Uyum = bir aile içinde baba-anne-çocuk arasındaki iletişim.


1
Peki bunları bir yazılım üzerindeki etkileri bağlamında
Itban Saeed

Bir yazılım birçok modülden oluşur. Modül elemanlardan oluşur. Bir modülün bir program olduğunu düşünün. Program içindeki bir işlev bir öğedir.
Dipankar Nalui

1

Basitçe söylemek gerekirse, uyum bir sınıfın tek bir kavramı temsil etmesi gerektiği anlamına gelir.

Tüm sınıf özellikleri, sınıfın temsil ettiği kavramla ilgiliyse, sınıfın genel arabirimi uyumludur. Örneğin, CashRegister sınıfına sahip olmak yerine, CashRegister ve Coin özelliklerinin birbirine bağlı olması onu 2 sınıfa dönüştürür - CashRegister ve Coin sınıfı.

Olarak bağlantı bu sınıfının nesneleri kullanmaktadır olarak, bir sınıf bir bağlıdır.

Yüksek kuplajdaki sorun, yan etkiler yaratabilmesidir. Bir sınıftaki bir değişiklik diğer sınıfta beklenmeyen bir hataya neden olabilir ve tüm kodu kırabilir.

Genel olarak, yüksek kohezyon ve düşük kuplaj, yüksek kaliteli OOP olarak kabul edilir.


0

Vadeli uyum gerçekten de yazılım tasarımı ne anlama geldiğini için sezgisel biraz sayaç olduğunu.

Uyumun ortak anlamı, birbirine iyi yapışan, moleküler çekim gibi güçlü bağ ile karakterize edilen bir şeyin birleştirilmesidir. Bununla birlikte, yazılım tasarımında, ideal olarak sadece bir şey yapan bir sınıf için çabalamak anlamına gelir, bu nedenle çoklu alt modüller bile dahil değildir.

Belki de bu şekilde düşünebiliriz. Bir parça, tek parça olduğunda en fazla kaynağa sahiptir (sadece bir şey yapar ve daha fazla parçalanamaz). Yazılım tasarımında istenen budur. Uyum, "tek sorumluluk" veya "endişelerin ayrılması" için başka bir isimdir.

Eldeki kuplaj terimi oldukça sezgiseldir, yani bir modül çok fazla modüle bağlı olmadığında ve bağlandığı modüller kolayca değiştirilebilir, örneğin liskov ikame ilkesine uyun .


İnsanlar neden sınıf yerine kelime modülünü kullanmaya devam ediyor?
northerner

1
@northerner sadece daha genel bir terimdir.
zar

0

Teori Farkı

yapışma

  • Uyum, modülün göreli işlevsel gücünün bir göstergesidir.
  • Uyumlu bir modül, programın diğer bölümlerindeki diğer bileşenlerle çok az etkileşim gerektiren tek bir görevi yerine getirir.
  • Yüksek kohezyona ve düşük kuplaja sahip bir modülün işlevsel olarak diğer modüllerden bağımsız olduğu söylenir.

Uyumun Sınıflandırılması

1. Tesadüfi 2. Mantıksal 3.Temporal 4.İşlemsel 5.İletişim 6. Sıralı 7.Fonksiyonel

Kavrama

  • Kuplaj, modüller arasındaki göreli bağımlılığın bir göstergesidir.
  • İki modül arasındaki kuplaj derecesi arayüz karmaşıklığına bağlıdır.
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.