2012-02-23 18 views
8

C++ 'da, özel miras, is-a ilişkisi olarak kabul edilmediğinden, nasıl bir sınıf şemasında gösterilmesi gerektiği ve eğer bir has-a ilişkisi olarak gösteriliyorsa Bir kompozisyon ve özel bir miras arasında ayrım yapılabilir mi?Bir UML sınıf şemasında özel devralma ilişkisinin nasıl gösterileceği

+4

Bu mükemmel bir sorudur. Sorun, özel mirasın bir oxymoron olmasıdır, bu yüzden UML sözlüğünün bir parçası değildir. Bunu, özel olarak kalıtsal olduğunu belirten bir açıklama ile gösteririm. Başka bir seçenek, tasarımınızı özel mirastan kaçınmak için yeniden gözden geçirmektir: sahip olmanız gereken durumlar çok az ve çok uzaktır, bu yüzden iyi şanslar o kadar basittir ki, bir o kadar iyi bir şey olabilir. – dasblinkenlight

cevap

2

çünkü bir Kompozisyon ilişki (alt sınıf tarafında katı kara elmas) olmalıdır:

  • Özel miras "anlamında uygulanan" ama bu konuda sadece "ile aynı tedavi edilebilir demektir bir "ilişkisi vardır.
  • Alt sınıfın bir örneği, nesnenin bir kısmını temel olarak kullanır ve sahiplik başka herhangi bir nesne ile paylaşılmaz.
İlgili konular