mvp, observer ve mediator Örüntüleri ile yeniden ......kenan sevindik kimdir? 1999 odtÜ...
TRANSCRIPT
![Page 1: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/1.jpg)
MVP, Observer ve Mediator Örüntüleri ile
Yeniden Kullanılabilir Uygulama Bileşenleri
Geliştirme
![Page 2: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/2.jpg)
Kenan Sevindik Kimdir?
● 1999 ODTÜ Bilgisayar Müh. mezunu
● 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var
● Pek çok projenin geliştirilmesinde görev aldı
● Object Oriented ve Aspect Oriented Programlama, Tasarım Örüntüleri gibi konularda,
● Spring, Spring Security, Hibernate, Vaadin gibi kurumsal Java teknolojilerinde bilgi birikimi ve deneyime sahip
![Page 3: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/3.jpg)
Kenan Sevindik Kimdir?
● Beginning Spring kitabının yazarlarından
● 2011 yılında Harezmi Bilişim Çözümlerini kurdu– Kurumsal uygulama
geliştirme faaliyetleri yürütüyor
– Danışmanlık ve koçluk hizmetleri sunuyor
– Kurumsal Java Eğitimleri adı altında eğitimler düzenliyor
![Page 4: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/4.jpg)
Controller
Veri değişiklikleri
Kullanıcı girdilerive UI olayları
Bildirimler
Veri erişimi
Model View
Mimarisel Bir Örüntü: MVC
![Page 5: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/5.jpg)
MVC & Observer
Subject
Observer 1
Observer 2
Observer 3
Subject changed...
notify
notify
notify
![Page 6: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/6.jpg)
MVC'nin Temel İşlevi
“Seperation of Concern”
![Page 7: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/7.jpg)
Kurumsal Uygulamalarda Katmanlı Mimari
UI
Service
DAO
DB
![Page 8: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/8.jpg)
Kurumsal Java Dünyasında MVC Yorumlaması
Controller
View
Model
User
Web MVC veya MVC2 olarak adlandırılmıştır
![Page 9: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/9.jpg)
Web MVC ve Front Controller
Front ControllerRequestHandler
View
model
request
response
delegate request handlerequest
createmodel
modelrenderresponse
Web Container
Struts, Spring MVC, JSF gibi pek çok Web Framework'üne temel teşkil etmiştir
![Page 10: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/10.jpg)
Kurumsal Uygulamalarda Katmanlı Mimari
Controller
Service
DAO
DB
Presentation
![Page 11: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/11.jpg)
Katmanlı Mimari ve Modülerlik
Controller
Service
DAO
DB
Presentation
Finans Personel Doküman
![Page 12: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/12.jpg)
Katmanlı Mimari ve Modülerlik
DB
Controller
Service
DAO
Presentation
Controller
Service
DAO
Presentation
Controller
Service
DAO
Presentation
![Page 13: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/13.jpg)
Katmanlı Mimari ve Modülerlik
Service
DAO
DB
Controller
Presentation
Controller
Presentation
Controller
Presentation
![Page 14: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/14.jpg)
Katmanlı Mimari ve Modülerlik
DB
Controller
Presentation
Service
DAO
Controller
Presentation
Controller
Presentation
Service
DAO
Service
DAO
![Page 15: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/15.jpg)
Bileşenler Arasındaki Etkileşim
Bileşen
Bileşen
Bileşen
![Page 16: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/16.jpg)
Bileşenler Arasındaki Etkileşim
Bileşen
BileşenBileşen
Bileşen
Bileşen
![Page 17: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/17.jpg)
MVC'nin Problemleri
● MVC örüntüsü, mimarisel olarak sistemi işlevsel açıdan modülerize etmeye yardımcı olmaktadır
● Ancak kullanıcı etkileşimlerinin fonksiyonel davranışa nasıl dönüştürüleceği ile ilgili net bir yol gösterememektedir
● Bileşenler arasındaki iletişimi düzenleyememektedir ve bileşenlerin birbirleri ile aralarındaki bağımlılıkları da tam olarak ortadan kaldıramamaktadır
![Page 18: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/18.jpg)
Çözüm: MVP + Mediator
● MVC'nin bir varyasyonu olan MVP, kullanıcı arayüzünün gösterimi ve fonksiyonel davranışların birbirlerinden bağımsız biçimde ele alınabilmesini sağlamaktadır
● Mediator ise bileşenler arasındaki iletişimi düzenleyip, bağımlılıkları ortadan kaldırmaktadır
![Page 19: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/19.jpg)
Model View Presenter
Presenter
Model
UI event'leri uygulamaya özel business event'lere dönüştürülür
UI üzerindeki değişikliklerPresenter tarafından yansıtılır
Model üzerindekideğişikliklerEvent'lerile Presenter'ailetilir
PresenterModel üzerindedeğişiklikyapabilir
Model verisineerişebilir
View
![Page 20: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/20.jpg)
Bileşenler Arasındaki Etkileşim Kaosu
![Page 21: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/21.jpg)
Mediator
![Page 22: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/22.jpg)
Mediator Sonrası Bileşenler Arasındaki Etkileşim
Bileşen
BileşenBileşen
Bileşen
Bileşen
Mediator
event publish
notify
notify
notify
notify
![Page 23: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/23.jpg)
Mediator Sonrası Bileşenler Arasındaki Etkileşim
DB
Controller
Presentation
Service
DAO
Controller
Presentation
Controller
Presentation
Service
DAO
Service
DAO
EventContext(Event
&Model)
EventContext
(Event&
Model)
![Page 24: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/24.jpg)
Örnek: Adres Bilgileri Yönetim Ekranı
AddressListView
AddressDetailView
Address ToolBar View
![Page 25: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/25.jpg)
Mediatorpublic class Mediator {
private Collection<Presenter> listeners = new ArrayList<Presenter>();
public void addListener(Presenter listener) {listeners.add(listener);
}
public void removeListener(Presenter listener) {listeners.remove(listener);
}
public void publish(BusinessEvent event) {for(Presenter listener:listeners) {
listener.handle(event);}
}}
![Page 26: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/26.jpg)
Presenterpublic interface Presenter {
public void handle(BusinessEvent event);
}
![Page 27: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/27.jpg)
Mediator
ListView
ListPresenter
Bileşen, diğer bileşenlerdekideğişikliklerden haberdar olmakiçin kendisini mediator'a registereder
Tool
Bar
Pre
sent
er
Tool
Bar
Vie
w
DetailView
DetailPresenter
Bileşen, diğer bileşenlerdekideğişikliklerden haberdar olmakiçin kendisini mediator'a registereder
Bileşen, diğer bileşenlerdekideğişikliklerden haberdar olmakiçin kendisini mediator'a registereder
Adım 1: Mediator Registration
![Page 28: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/28.jpg)
Address List Presenterpublic class AddressListPresenter implements Presenter {
private AddressListView view;private Mediator mediator;
public AddressListPresenter(AddressListView view,Mediator mediator) {this.view = view;this.mediator = mediator;mediator.addListener(this);
}
@Overridepublic void handle(BusinessEvent event) {
...}
}
![Page 29: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/29.jpg)
Address Detail Presenterpublic class AddressDetailPresenter implements Presenter {
private AddressDetailView view;private Mediator mediator;
public AddressDetailPresenter(AddressDetailView view, Mediator mediator) {
this.view = view;this.mediator = mediator;mediator.addListener(this);
}
@Overridepublic void handle(BusinessEvent event) {
...}
}
![Page 30: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/30.jpg)
Address ToolBar Presenterpublic class AddressToolBarPresenter implements Presenter {
private AddressToolBarView view;private Mediator mediator;
public AddressToolBarPresenter(AddressToolBarView view, Mediator mediator) {
this.view = view;this.mediator = mediator;mediator.addListener(this);
}
@Overridepublic void handle(BusinessEvent event) {
...}
}
![Page 31: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/31.jpg)
Mediator
ListView
ListPresenter
Listeden herhangi bir item'ınseçilmesi bir UI event tetikler
UI event, doğrudan birbusiness event'e dönüştürülürve mediator üzerinden fire edilir
Tool
Bar
Pre
sent
er
Tool
Bar
Vie
w
DetailView
DetailPresenter
Adım 2:UI Interaction (Item Select)
![Page 32: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/32.jpg)
Address List Viewpublic class AddressListView implements ValueChangeListener {
public AddressListView(Mediator mediator) {this.mediator = mediator;
}
@Overridepublic void valueChange(ValueChangeEvent event) {
Address address = (Address) table.getValue();
AddressSelectedEvent selectedEvent = new AddressSelectedEvent(address);
mediator.publish(selectedEvent);}
...}
![Page 33: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/33.jpg)
Mediator
ListView
ListPresenter
UI stategüncellenir
DetailView
DetailPresenter
UI stategüncellenir
Tool
Bar
Pre
sent
er
Tool
Bar
Vie
w
Mediator business eventile ilgilenen diğerbileşenleri haberdareder
Mediator business eventile ilgilenen diğerbileşenleri haberdareder
DAO
ServicePresenter'larbusiness event'inişaret ettiği işmantığını serviskatmanı üzerindenyürütürler
Adım 3:Event Notification (Address Selected)
![Page 34: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/34.jpg)
Address Detail Presenterpublic class AddressDetailPresenter implements Presenter {
@Overridepublic void handle(BusinessEvent event) {
if(event instanceof AddressSelectedEvent) {AddressSelectedEvent selectedEvent =
(AddressSelectedEvent)event;Address address =
selectedEvent.getSelectedAddress();view.displayAddress(address);
}}
...}
![Page 35: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/35.jpg)
Address ToolBar Presenterpublic class AddressToolBarPresenter implements Presenter {
@Override
public void handle(BusinessEvent event) {if(event instanceof AddressSelectedEvent) {
AddressSelectedEvent selectedEvent = (AddressSelectedEvent)event;
Address address = selectedEvent.getSelectedAddress();
view.switchToUpdateMode();view.setAddress(address);
}}
...}
![Page 36: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/36.jpg)
Address Selected
![Page 37: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/37.jpg)
Mediator
ListView
ListPresenter
Tool
Bar
Pre
sent
er
Tool
Bar
Vie
w
DetailView
DetailPresenter
Bir buton'atıklanması UIevent tetikler
UI event, doğrudan birbusiness event'e dönüştürülürve mediator üzerinden fire edilir
Adım 2:UI Interaction (Update Button Click)
![Page 38: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/38.jpg)
Address ToolBar Viewpublic class AddressToolBarView implements ClickListener {
public AddressToolBarView(Mediator mediator) {this.mediator = mediator;
}
@Overridepublic void buttonClick(ClickEvent event) {
if(event.getButton() == updateButton) {AddressUpdateEvent updateEvent =
new AddressUpdateEvent(address);mediator.publish(updateEvent);
}}
...}
![Page 39: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/39.jpg)
Mediator
ListView
ListPresenter
UI stategüncellenir
Mediator business eventile ilgilenen diğerbileşenleri haberdareder
Tool
Bar
Pre
sent
er
Tool
Bar
Vie
w
DetailView
DetailPresenter
UI stategüncellenir
Mediator business eventile ilgilenen diğerbileşenleri haberdareder
Adım 3:Event Notification(Address Update)
DAO
Service
Presenter'larbusiness event'inişaret ettiği işmantığını serviskatmanı üzerindenyürütürler
![Page 40: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/40.jpg)
Address List Presenterpublic class AddressListPresenter implements Presenter {
@Overridepublic void handle(BusinessEvent event) {
if(event instanceof AddressUpdateEvent) {AddressUpdateEvent updateEvent =
(AddressUpdateEvent)event;
Address address = updateEvent.getAddress();
view.reloadAddress(address);
}}
...}
![Page 41: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/41.jpg)
Address ToolBar Presenterpublic class AddressToolBarPresenter implements Presenter {
@Override
public void handle(BusinessEvent event) {if(event instanceof AddressSelectedEvent) {
AddressSelectedEvent selectedEvent = (AddressSelectedEvent)event;
Address address = selectedEvent.getSelectedAddress();
view.switchToUpdateMode();view.setAddress(address);
} else if(event instanceof AddressUpdateEvent) {
view.switchToSelectionMode();
}}...
}
![Page 42: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/42.jpg)
Address Updated
![Page 43: MVP, Observer ve Mediator Örüntüleri ile Yeniden ......Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi var](https://reader036.vdocuments.pub/reader036/viewer/2022070809/5f0815cb7e708231d42042cb/html5/thumbnails/43.jpg)
Soru & Cevap