Observer Pattern: Bu pattern haberleşme ile ilgili bir patterndir. Bir objenin başka bir objedeki değişiklikten haberdar olması ihtiyacına cevap verir.
Örnek Kod:
EvenstSource Objesi
package observerPattern;
import java.util.Observable; //Observable is here
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EventSource extends Observable implements Runnable
{
String response;
public void run()
{
try
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
while( true )
{
response = br.readLine();
setChanged();
notifyObservers( response );
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
/* File Name: ResponseHandler.java */
package observerPattern;
import java.util.Observable;
import java.util.Observer; /* this is Event Handler */
public class ResponseHandler implements Observer
{
private String resp;
public void update(Observable obj,Object arg)
{
if(arg instanceof String)
{
resp = (String) arg;
System.out.println("\nReceived Response: "+ resp );
}
}
}
/* Filename : myapp.java */
/* This is main program */
package observerPattern;
public class myapp
{
public static void main(String args[])
{
System.out.println("Enter Text >");
EventSource evSrc = new EventSource();
ResponseHandler respHandler = new ResponseHandler();
evSrc.addObserver(respHandler);
evSrc.run();
}
}
Observer Pattern UML
Hiç yorum yok:
Yorum Gönder