ne dernek, toplama ve kompozisyon yazılır?

2 Cevap php

ben bu 3 ilişkileri arasındaki farklar hakkında bazı mesajları okudum ve i noktası olsun düşünüyorum.

ben sadece kodlama yaparken tüm bu aynı yazılır, merak ediyorum?

Soru 1: 3 bir örnek değişkeninde nesne türünün sadece bir değeri vardır?

class A {
    public $b = ''

    public function __construct($object) {
         $this->b = $object // <-- could be a association, aggregation or a composition relation?
    }
}

soru 2: bir örnek değişken olmak zorunda ya da statik bir olabilir?

class A {
    public static $b = '' // <-- nothing changed?

    public function __construct($object) {
         $this->b = $object
    }
}

Soru 3: nesne oluşturulduktan nerede bir fark var?

i kompozisyon nesne nesnenin içinde yaratılmış olduğunu düşünmek eğilimindedir:

class A {
    public $b = ''

    public function __construct() {
         $this->b = new Object // is created inside the object
    }
}

ve toplama / dernek kurucu veya başka bir yöntemle geçirilir:

class A {
    public $b = ''

    public function __construct($object) { // passed through a method
         $this->b = $object
    }
}

Soru 4: Neden / bilmek için bu önemlidir. i hakkında başka ne ilişkisi onun içinde bir nesne yorum var mı veya bir UML diyagramı bunu yapıyorsun?

Birisi bu sorulara ışık tutacak olabilir.

teşekkürler!

2 Cevap

Bu genellikle tabii genelde bir sınıfın sadece üye alanları nesne referans olarak gerçekleşmiştir haklısın. Bir nesne yönelimli sistemde doğal çünkü bu sadece, bu örneğin, farklı bağlamlarda başka şeyler eşleyebilirler Bir ilişkisel veritabanı yabancı anahtarlar.

Ilişkinin özelliklerini erisco @ tarafından belirtildiği gibi, sadece genel modeli bağlamında alınabilir. Satınalma Sipariş comprises, bir veya daha fazla Sipariş Hatları: Örneğin, bir Satınalma Siparişi ve böyle bir sipariş Hattı (örneğin) arasındaki ilişki kompozisyon okuyabilirsiniz.

Ben genellikle aşağıdaki gibi vermek üç yorumlamak:

  1. İlişkisi: knows of B, B kendi başına bir anlamı vardır.
  2. Toplama: A includes B, B dışarıdan tanımlanabilir ve kendi yararları üzerinde bulunabilir.
  3. Bileşimi: A comprises B, B dışarıdan tanımlanabilir değil veya bu bileşimin dışında anlamı yok.

O dedi, ben yukarıdaki sözleşmeler :-) başkasının diyagramlar yorumlarken bu kadar hayal (ve benim değerlendirme ile katılmıyorum olacak! SO çok büyük olasılıkla insan vardır) olabilir oldukça çok şey demek bu yüzden dikkat çekmek için kullanılır gördük iyi YMMV ama bana hizmet.

Soru 2 Re: Bir statik referans örnekleri arasında ortak bir ilişki doğuracak, ama o uygulamak için sadece bir yol olduğunu ve tüketicilere şaşırtıcı olabilir.

Wikipedia: Class Diagrams muhtemelen en iyi tanımları vardır. Lütfen örneklerin hiçbiri, dernek, toplanma, veya kompozisyon ayırt. A, B ya da ne ne herhangi bir tanım olmadan, onların ilişki ne hiçbir tanımı yoktur. Diğer nesne başvuru nasıl elde edildiğini sınıf şemalar için ilgisizdir.