Ziyarətçi Dizayn Modeli

by | Oct 8, 2020 | Java

Əsas səhifə » Java » Ziyarətçi Dizayn Modeli

Ziyarətçi Dizayn Nümunəsi obyekt yönümlü proqramlaşdırmada Davranış Dizayn Nümunələrinin bir hissəsidir və əlində müəyyən əməliyyatın yerinə yetirilməli olduğu bir neçə oxşar obyekt olduqda işə salınır. Bu model iki və ya daha çox obyekt arasında əlaqəni saxlamaq üçün məsuliyyət daşıdığından, kodu sadə və təkrar istifadə edilə bilən saxlamaq üçün mümkün qədər az birləşmənin olmasını təmin edir. Ziyarətçi sinfi, ayrı-ayrı obyektlərin işləyəcəyi prinsipləri idarə edərək, ziyarət edilə bilən siniflərdə fəaliyyət göstərir və ya həyata keçirir.

Tərif

Dördlər Dəstəsində müəyyən edildiyi kimi: "Ziyarətçi nümunəsi obyekt strukturunun elementləri üzərində yerinə yetiriləcək əməliyyatı təqdim edir". Daha sadə sözlə, ziyarətçi sinfi istifadəçilərə mövcud kodu dəyişdirmədən element siniflərinə funksiyalar əlavə etməyə imkan verir. Ziyarətçi sinfi obyektlərdən icra məntiqini çıxarır və özü tərəfindən ayrıca sinif yaradır.

struktur

Ziyarətçi modelinin əsas çərçivəsi ziyarətçi və ziyarət edilə bilən sinifləri izləyir.

  • Ziyarət sinifində element siniflərinə və oxşar obyektlərə baxan visit() metodu var.
  • Ziyarət edilə bilən sinif, ziyarət sinfinə funksiyaları öz əhatə dairəsində həyata keçirməyə imkan verən accept() metoduna malikdir.

Nümunə və Kod

Biz sadə alış-veriş səbəti sistemi quracağıq, burada səbətin məzmunu elementlər kimi qəbul ediləcək. Ziyarətçi kassir kimi çıxış edəcək, siz sistemdən çıxdığınız zaman malların qiymətlərini və çəkilərini yoxlayacaq.

ictimai interfeys elementləri{ public void accept(Visitor vis); } // Aşağıdakı sinif konkret element elementi olacaq. Yumurtalardan ibarət cizgi filmini seçək ictimai sinif Yumurtalar elementləri{ private double mrp; şəxsi ikiqat wgt; public void accept (Visitor vis){ vis.visit(this); } ictimai ikiqat getMRP() { mrp qaytarın; } ictimai double getWeight(){ wgt qaytarın; } } //Gəlin bu halda ziyarətçi olacaq kassir interfeysini yaradaq ictimai iinterface Visitor{ public void visit (Yumurta yumurtaları); …. //Alış-veriş səbətinizdəki digər əşyalar } //Nəhayət, kassirin oturduğu yerdə yoxlama sayğacını edəcəyik CashierCheckOut Visitor { private double totalCost; şəxsi ikiqat ümumi çəki; ictimai etibarsız ziyarət (Yumurta yumurtaları) { totalCost+= eggs.getMRP(); totalWeight+=eggs.getWeight(); . . . //Başqa maddələr üçün eyni proses təkrarlanır. ictimai ikiqat cəmi() { cəmi dəyəri qaytarın; } }

 

Ziyarətçi Dizayn Modelindən nə vaxt istifadə edilməlidir

Bu nümunə kodunuzun hər zaman ayrılmasına kömək etdiyi üçün, siz oxşar davranış obyektlərinin geniş diapazonunda bir neçə funksiyanı (əsasən bir-biri ilə əlaqəsi olmayan) yerinə yetirmək lazım olduqda ondan istifadə edə bilərsiniz. Bu nümunə, obyektlərin müxtəlif interfeyslərə malik olduğu hallarda da istifadə edilə bilər.

0 Şərhlər

Şərh təqdim

E-poçt ünvanından dərc olunmayacaq. Lazım alanlar qeyd olunur *

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.

müəllif