Tarkibi. Yana bittasi bor a » assotsiatsiya ishi, lekin qattiqroq. Birlashtirishdan farqli o'laroq, kompozitsiya konteyner sinfi misollari va tarkibidagi sinf misollarining ishlash muddatiga qattiq bog'liqdir. Agar idish vayron bo'lsa, unda uning barcha tarkibi ham yo'q qilinadi.
U grafik jihatdan yig'ish shaklida tasvirlangan, ammo to'ldirilgan olmos bilan . Diagramma:
PHP kodi:
sinf yordamchisi
{
ommaviy olish ()
{
// ba'zi kod
}
}
sinf ko'rinishi
{
xususiy $helper ;
xususiy $page ;
ommaviy funktsiya __konstruktor()
{
$this ->helper = new Helper();
}
ommaviy render() funktsiyasi
{
$this ->page = $this ->helper->fetch();
}
}
?>
Birlashtirish va kompozitsiya o'rtasidagi farq
Ushbu ikki turdagi assotsiatsiya o'rtasidagi farq shundaki, kompozitsiya bitta va faqat bitta butunning bir qismi bo'lishi mumkin, birlashma esa bir nechta ob'ektlarning bir qismi bo'lishi mumkin.
Yo'naltirilgan uyushma (xabar / boshqariladigan uyushma)
Xabar bir sinf boshqasi bilan instantsiya yordamida “muloqot qilganda” foydalaniladi.
Instantiation (ing. instantiation ) - sinfning namunasini yaratish. "Yaratish" so'zidan farqli o'laroq, ob'ektga emas, balki sinfga nisbatan qo'llaniladi. Ya'ni, ular sinfning namunasini yaratish yoki sinfni yaratishni aytishadi. Yaratish naqshlari polimorfik instantsiyadan foydalanadi.
Sinf namunasi (inglizcha instance ) - xotiradagi ma'lum bir ob'ektning tavsifi. Sinf sinfga o'rnatilgan tavsifga muvofiq qurilgan ob'ekt uchun mavjud bo'lgan xususiyatlar va usullarni tavsiflaydi. Haqiqiy dunyoda aniq ob'ektlarni ko'rsatish uchun misollar ishlatiladi.
Grafik jihatdan "chaqirilgan" sinfga ishora qiluvchi o'q sifatida tasvirlangan . Diagramma:
PHP misoli:
HtmlUtils sinfi
{
ommaviy statik specialChars funksiyasi ( $str )
{
//Bu erda biz barcha kerakli belgilarni almashtirib, $ str qatoridan qochib qutulamiz
qaytish $str ;
}
}
sinf ko'rinishi
{
xususiy $page ;
ommaviy render() funktsiyasi
{
//......
$this ->page = HtmlUtils::specialChars( $text );
//......
}
}
?>
Yo'naltirilgan assotsiatsiya ham ikki tomonlama bo'lishi mumkin, masalan:
Diagramma:
Kod:
sinfni tuzatish
{
ommaviy statik ko'rsatish ()
{
aks-sado $this ->errorMsg;
}
}
sinf ko'rinishi
{
ommaviy $errorMsg = 'Xabar' ;
ommaviy someFunction() funktsiyasi
{
// Funksiya tanasi va agar xatolik yuzaga kelsa, $ xato = 1
agar ( $ xato ) Debug :: displey ();
}
}
?>
UML . Ketma-ketlik diagrammalari.
Ushbu diagrammalar veb-ilovalarni loyihalash ehtiyojlarining deyarli 90% ni qoplaydi. Biroq, ular sinf diagrammalariga qaraganda ancha engilroq .
Ta'riflar va turlari.
Baribir ketma-ketlik diagrammasi nima? O'zaro ta'sir diagrammasi - ob'ektlar guruhlari o'zlarining xatti-harakatlarining turli sharoitlarida o'zaro ta'sirini tavsiflaydi. Eng ko'p ishlatiladigan grafik ma'lumotlar turi ketma-ketlik diagrammasi. Ketma-ketlik diagrammasi ko'pincha bitta dastur stsenariysini tavsiflovchi diagrammadir. Diagrammada ob'ekt namunalari va ular bitta foydalanish holatida almashinadigan xabarlar tasvirlangan ( foydalanish hol ).
Misol :
Ushbu diagramma ketma-ketlik diagrammalarining deyarli barcha elementlarini ko'rsatadi, faqat tsikllar va shartlar sahna ortida qoladi, lekin ular haqida keyinroq. Ketma-ketlik diagrammasida har bir ishtirokchi o'z hayot chizig'i bilan birga tasvirlangan , bu ob'ekt ostidagi vertikal chiziq bo'lib, sahifadagi yozuvlarni vertikal ravishda tartibga soladi. Muhim: diagrammadagi barcha xabarlar yuqoridan pastgacha o'qilishi kerak. Har bir hayot chizig'ida o'zaro ta'sir davomida har bir ishtirokchining faoliyati oralig'ini ko'rsatadigan faoliyat paneli (to'rtburchaklar) mavjud .
Diagramma a'zolari quyidagicha nomlanadi: nom : Class , bu erda nom ham, sinf ham ixtiyoriy, lekin sinf ishlatilsa, ikki nuqta bo'lishi kerak.
Xabarlar. Xabarlarni 2 turga bo'lish mumkin: sinxron ( sinxron xabar ) - javob talab qiladi va asinxron ( asinxron xabar ) - Hech qanday javob talab qilinmaydi va qo'ng'iroq qiluvchi davom etishi mumkin. Diagrammada sinxron qo'ng'iroqlar to'ldirilgan o'qlar bilan ko'rsatilgan. Asenkron - bo'yalmagan yoki yarim o'qlar.
Diagramamizdagi birinchi xabarda jo'natuvchi yo'q, chunki u noma'lum manbadan keladi. Bunday xabar topilgan xabar deb ataladi ( topilgan xabar ) .
Do'stlaringiz bilan baham: |