293jpg ObserverPattern design pattern