Merhaba değerli Java dostları,

Bugün mediator design pattern hakkında bahsetmek istiyorum. Mediator design pattern ile amacımız birbirileri ile haberleşen bileşenler arasında esnek yapı sağlamaktır. En temel adım bileşenlerin direkt olarak birbirileri ile haberleşmelerini engellemektir. Mediator design pattern ile ara bir nesne kullanılır ve tüm bileşenler bu ortak nesne üzerinden haberleştir. Böylece bileşenler arasında sıkı bağ ortadan kaldırılmış olunur. Mediator design pattern için en güzel örneklerden birisini uçuş kontrol olarak verebiliriz. Uçuş kontrol sistemlerinde uçaklar birbirileri ile haberleşmez. Bunun yerine kule tüm uçuşlar arasında koordinasyonu sağlar. İşte mediator design pattern için gerçek bir gündelik problem. Örneğimize bakalım.

package anajavatica.pattern.behavioral.mediator;public class Flight {

private String flightName = “”;

public Flight(String flightName) {
super();
this.flightName = flightName;
}

public String getFlightName() {
return flightName;
}

public void land() {
System.out.println(“Landing: ” + getFlightName());
}

public void pass() {
System.out.println(“Passing: ” + getFlightName());
}

public void requestLand(FlightControl flightControl) {
flightControl.requestLand(this);
}

}

package anajavatica.pattern.behavioral.mediator;import java.util.ArrayList;
import java.util.List;

public class FlightControl {

private List flightList = new ArrayList();

public void requestLand(Flight flight) {
flight.land();
removeFlight(flight);
for (Flight f : flightList) {
f.pass();
}
}

public void addFlight(Flight flight) {
flightList.add(flight);
}

private void removeFlight(Flight flight) {
flightList.remove(flight);
}

}

package anajavatica.pattern.behavioral.mediator;public class MediatorMain {

public static void main(String[] args) {

Flight flight1 = new Flight(“Flight1”);
Flight flight2 = new Flight(“Flight2”);
Flight flight3 = new Flight(“Flight3”);
Flight flight4 = new Flight(“Flight4”);
FlightControl flightControl = new FlightControl();
flightControl.addFlight(flight1);
flightControl.addFlight(flight2);
flightControl.addFlight(flight3);
flightControl.addFlight(flight4);

flight3.requestLand(flightControl);
flight4.requestLand(flightControl);
flight1.requestLand(flightControl);
flight2.requestLand(flightControl);

}

}

Bu arada mediator design pattern için davranış kategorisinde yer aldığını da söylemeyi unutmayalım.

Bol Java’ lı günler dileğiyle… 😀

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir