Java Timer Component Observer Patern'i ile
17.05.2011 - 16:42 tarihinde aykut gönderdi
Aşağıda Java dilinde ve Observer patern'i kullanılarak tarafımdan yazılmış
basit bir Timer sınıfı örneklenmektedir. Bu ve benzeri örnekler C ve Sistem
Programcıları Derneğinde verdiğim UML ve Dizayn Patern eğitimlerinden
alıntıdır. (Aykut TAŞDELEN)
Kaynak kod:
public interface IObservable { void Register(Console o); void Unregister(Console o); void Notify() throws InterruptedException; } public class Timer implements IObservable { private int m_interval; private boolean m_enabled; private ArrayList<Console> subscribers = new ArrayList<Console>(); public Timer(int interval) { m_interval = interval; m_enabled = false; } public int getInterval() { return m_interval; } public void setInterval(int interval) { this.m_interval = interval; } public boolean isEnabled() { return m_enabled; } public void setEnabled(boolean enabled) { this.m_enabled = enabled; } @Override public void Notify() throws InterruptedException { if (isEnabled()) { for (int i=0; i <= subscribers.size()-1; ++i) { Thread.sleep(m_interval); subscribers.get(i).onAction(); } } } @Override public void Unregister(Console subscriber) { subscribers.remove(subscriber); } @Override public void Register(Console subscriber) { subscribers.add(subscriber); } } public class Console { public void onAction() { // Bu metot periyodik olarak sistem saatini // ekrana basar Calendar c = Calendar.getInstance(); System.out.println(c.getTime()); } }
